android通过url读取网络图片

来源:互联网 发布:icloud的数据恢复 编辑:程序博客网 时间:2024/06/05 02:14

要注意的问题:1.android4.0后,代码不能卸载ui。

2.想想,就是通过url取网络图片嘛,我直接给他一个url好了嘛,然后它就给我取出来。 这边分享一个比较简洁的实现方式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
private class DownLoadImage extendsAsyncTask<string, integer,=""bitmap=""> {
        ImageSwitcher imageSwitcher;
        publicDownLoadImage(ImageSwitcher is) {
             
            this.imageSwitcher = is;
            }
         protectedBitmap doInBackground(String... urls) {
            System.out.println("异步加载图片开始!");
             String url =urls[0];//"http://ww3.sinaimg.cn/bmiddle/6e91531djw1e8l3c7wo7xj20f00qo755.jpg";
             System.out.println(url);
             Bitmap tmpBitmap =null
             try{
             InputStream is =new java.net.URL(url).openStream();
             tmpBitmap = BitmapFactory.decodeStream(is);
             is.close();
             }catch (Exception e) {
             e.printStackTrace();
             Log.i("KK下载图片", e.getMessage());
             }
             returntmpBitmap;
             
         }
 
     
 
         @Override
        protectedvoid onProgressUpdate(Integer... values) {
            // TODO Auto-generated method stub
            super.onProgressUpdate(values);
             System.out.println("进程进度:"+values);
        }
        protectedvoid onPostExecute(Bitmap result) {
             //TODO:
             //把bitmap转drawable   
             Resources res=getResources();
             Drawable bd=newBitmapDrawable(res,result);
              
             imageSwitcher.setImageDrawable(bd);
             System.out.println("异步加载图片完成!");
         }
     }
</string,>

再在ui线程中调用 new DownLoadImage(switcher).execute(img_url);就可以啦。 函数里的ImageSwitcher imageSwitcher;可以换成imageview或者其他控件

上面的方法读取图片也就用到这两行

?
1
2
InputStream is = new java.net.URL(url).openStream();
            tmpBitmap = BitmapFactory.decodeStream(is);

很简洁,可是问题来了: 我想搞个进度条来显示图片下载的进度,这个inputstream好像过度封装了。

这让我想起了那张阴阳图,可能要实现进度条,我就要回去用代码量比较多的方法,懂得朋友留个言哈!

0 0
原创粉丝点击