本文实例为大家分享了android获取网络图片并显示的具体代码,供大家参考,具体内容如下
使用 httpurlconnection 获得连接,再使用 inputstream 获得图片的数据流,通过 bitmapfactory 将数据流转换为 bitmap,再将 bitmap 通过线程的 message 发送出去,handler 接收到消息就会通知 imageview 显示出来。
记得要在manifest文件中添加 < uses-permission android:name=”android.permission.internet” />上网权限,不然无法显示图片。
工程文件结构:
布局文件中就一个 imageview 用来显示图片,一个 button 用来获取图片。
mainactivity.java
public class mainactivity extends appcompatactivity {
button button;
imageview imageview;
string url = "http://i4.buimg.com/dccba6282641a9e0.jpg";
//string texturl = "http://192.168.1.104:8080/add.jsp";
@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
button = (button) findviewbyid(r.id.button);
imageview = (imageview) findviewbyid(r.id.imageview);
button.setonclicklistener(new view.onclicklistener() {
@override
public void onclick(view v) {
new thread(new runnable() {
@override
public void run() {
bitmap bmp = geturlimage(url);
message msg = new message();
msg.what = 0;
msg.obj = bmp;
system.out.println("000");
handle.sendmessage(msg);
}
}).start();
}
});
}
//在消息队列中实现对控件的更改
private handler handle = new handler() {
public void handlemessage(message msg) {
switch (msg.what) {
case 0:
system.out.println("111");
bitmap bmp=(bitmap)msg.obj;
imageview.setimagebitmap(bmp);
break;
}
};
};
//加载图片
public bitmap geturlimage(string url) {
bitmap bmp = null;
try {
url myurl = new url(url);
// 获得连接
httpurlconnection conn = (httpurlconnection) myurl.openconnection();
conn.setconnecttimeout(6000);//设置超时
conn.setdoinput(true);
conn.setusecaches(false);//不缓存
conn.connect();
inputstream is = conn.getinputstream();//获得图片的数据流
bmp = bitmapfactory.decodestream(is);//读取图像数据
//读取文本数据
//byte[] buffer = new byte[100];
//inputstream.read(buffer);
//text = new string(buffer);
is.close();
} catch (exception e) {
e.printstacktrace();
}
return bmp;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。