URL對象中前而幾個方法都非常容易理解,而該對象提供的openStream()可以讀取該 URL資源的InputStream,通過該方法可以非常方便地讀取遠程資源。
創(chuàng)新互聯(lián)主營興平網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都app開發(fā),興平h5小程序定制開發(fā)搭建,興平網(wǎng)站營銷推廣歡迎興平等地區(qū)企業(yè)咨詢
下面的程序示范如何通過URL類讀取遠程資源:
1)只顯示網(wǎng)絡(luò)圖片
1)只顯示網(wǎng)絡(luò)圖片
引用圖片處理的java類:
package?dujun.king.urlgetimage;
import?java.io.InputStream;
import?java點虐 .URL;
import?android.app.Activity;
import?android.graphics.Bitmap;
import?android.graphics.BitmapFactory;
import?android.os.Bundle;
import?android.os.Handler;
import?android.os.Message;
import?android.view.Menu;
import?android.view.MenuItem;
import?android.widget.ImageView;
public?class?MainActivity?extends?Activity?{
Bitmap?bitmap;
ImageView?imageview;
Handler?handler=new?Handler(){
@Override
public?void?handleMessage(Message?msg)?{
if?(msg.what==0x9527)?{
//顯示從網(wǎng)上下載的圖片
imageview.setImageBitmap(bitmap);
}
}
};
@Override
protected?void?onCreate(Bundle?savedInstanceState)?{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageview=(ImageView)findViewById(R.id.imageView1);
//創(chuàng)建并啟動一個新線程用于從網(wǎng)絡(luò)上下載圖片
new?Thread(){
@Override
public?void?run()?{
try?{
//創(chuàng)建一個url對象
URL?url=new?URL("");
//打開URL對應(yīng)的資源輸入流
InputStream?is=?url.openStream();
//從InputStream流中解析出圖片
bitmap?=?BitmapFactory.decodeStream(is);
//??imageview.setImageBitmap(bitmap);
//發(fā)送消息,通知UI組件顯示圖片
handler.sendEmptyMessage(0x9527);
//關(guān)閉輸入流
is.close();
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
}.start();
}
@Override
public?boolean?onCreateOptionsMenu(Menu?menu)?{
//?Inflate?the?menu;?this?adds?items?to?the?action?bar?if?it?is?present.
getMenuInflater().inflate(R.menu.main,?menu);
return?true;
}
@Override
public?boolean?onOptionsItemSelected(MenuItem?item)?{
//?Handle?action?bar?item?clicks?here.?The?action?bar?will
//?automatically?handle?clicks?on?the?Home/Up?button,?so?long
//?as?you?specify?a?parent?activity?in?AndroidManifest.xml.
int?id?=?item.getItemId();
if?(id?==?R.id.action_settings)?{
return?true;
}
return?super.onOptionsItemSelected(item);
}
}
1)文件要有后綴名
2)要用Image或BufferedImage對象
3)因為你重寫了paint()方法,所以不能在Label里面顯示圖片。你重寫了paint()方法后,整個容器都會變成畫布,所以看不到Label組件,自然也就看不到圖片。應(yīng)該在paint方法里面用g.drawImage方法把圖片在畫布中畫出來。參考Java API,Graphics的drawImage方法。
用Swing包下的ImageIcon類就可以實現(xiàn),比如在一個按鈕中添加一張圖片,就可以用以下代碼實現(xiàn):ImageIcon imageicon =new ImageIcon(String s);JButton b=new JButton(imageicon); 其中參數(shù)s是所要添加圖片的路徑(絕對路徑或相對路徑)和名字。如想添加D盤下的圖片1.jpg,就可以將上面改成:ImageIcon imageicon =new ImageIcon("D:\1.jpg");
public Qua_Main_JFrame() {
JPanel jpanel = new JPanel();
this.setContentPane(jpanel);
//
添加標(biāo)簽組件
GridLayout gird = new GridLayout(3,0);
jpanel.setLayout(gird);
ImageIcon img = new ImageIcon("src/JMXY.JPG");
JLabel imgLabel = new JLabel(img);//
將背景圖放在標(biāo)簽里。
this.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));
imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());
this.getLayeredPane().setLayout(null);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jpanel.setOpaque(false);
initComponents();
}
其中
Qua_Main_JFrame
為創(chuàng)建的
java
窗體項目名,圖片按路徑存放,注意一點,所有
的代碼都應(yīng)該放在
initComponents();
方法之上,這樣你添加進窗體中的空間才會顯示在
圖片之上,否則看不見控件。