android获取网络图片方法,Android获取网络图片并显示的方法

本文实例为大家分享了android获取网络图片并显示的具体代码,供大家参考,具体内容如下

使用 httpurlconnection 获得连接,再使用 inputstream 获得图片的数据流,通过 bitmapfactory 将数据流转换为 bitmap,再将 bitmap 通过线程的 message 发送出去,handler 接收到消息就会通知 imageview 显示出来。

b7f9076f887ab4f41262bf393ce9432e.png

记得要在manifest文件中添加 < uses-permission android:name=”android.permission.internet” />上网权限,不然无法显示图片。

工程文件结构:

7e57eeae03729538fe98c8da41210723.png

布局文件中就一个 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;

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值