Android中如何根据URL获取图片

作者:没什么大不了 | 创建时间: 2023-07-06
开发Android应用,许多时候需要根据URL地址下载图片到本地显示,小编查阅资料并自己尝试后,觉得利用线程操作比较合适,下面简要介绍一下:...
Android中如何根据URL获取图片

操作方法

如下图所示,需要根据URL地址获取图片加载到图中Anroid机器人所在的位置,这是运行前的效果:

首先需根据URL地址获取图片,如下所示,urladdr即为图片地址,返回Drawable对象: //download image from network using @urladdress private Drawable loadImageFromNetwork(String urladdr) { // TODO Auto-generated method stub Drawable drawable = null; try{ //judge if has picture locate or not according to filename drawable = Drawable.createFromStream(new URL(urladdr).openStream(), "image.jpg"); }catch(IOException e){ Log.d("test",e.getMessage()); } if(drawable == null){ Log.d("test","null drawable"); }else{ Log.d("test","not null drawable"); } return drawable; }

获取到图片后,需要更新主线程UI资源,考虑到时间以及界面反应延迟等,所以采用线程加以处理,如下图所示: // image new Thread(new Runnable(){ Drawable drawable = loadImageFromNetwork(urladdress); @Override public void run(){ //post() is quite important,update pictures in UI main thread image.post(new Runnable(){ @Override public void run(){ //TODO Auto-generated method stub image.setImageDrawable(drawable); } }); } //download image from network using @urladdress private Drawable loadImageFromNetwork(String urladdr) { //... 略(如 1 中所示) } }).start();  //线程启动

说明:在上述示例代码中,image是ImageView类的一个对象,也就是APP中的一个显示图像组件,利用获取到的图片drawable去更新image,运行效果如下所示:

温馨提示

线程操作如果不是很熟悉,请先阅读相关资料!
URL、联网等概念如果感到陌生,也请事先了解一下!
点击展开全文

更多推荐