Android获取网络图片并显示的方法
程序员文章站
2022-05-27 10:23:39
本文实例为大家分享了android获取网络图片并显示的具体代码,供大家参考,具体内容如下
使用 httpurlconnection 获得连接,再使用 inputstrea...
本文实例为大家分享了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; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: Android中的Bitmap序列化失败的解决方法
下一篇: Android实现字幕滚动的方法