• android通过url读取网络图片


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

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

    private class DownLoadImage extends AsyncTask<string, integer,="" bitmap=""> {
            ImageSwitcher imageSwitcher;
            public DownLoadImage(ImageSwitcher is) {
                 
                this.imageSwitcher = is;
                }
             protected Bitmap 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());
                 }
                 return tmpBitmap;
                 
             }
     
         
     
             @Override
            protected void onProgressUpdate(Integer... values) {
                // TODO Auto-generated method stub
                super.onProgressUpdate(values);
                 System.out.println("进程进度:"+values);
            }
            protected void onPostExecute(Bitmap result) {
                 //TODO:
                 //把bitmap转drawable   
                 Resources res=getResources();
                 Drawable bd=new BitmapDrawable(res,result);
                  
                 imageSwitcher.setImageDrawable(bd);
                 System.out.println("异步加载图片完成!");
             }
         }
    </string,>

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

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

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

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

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

  • 相关阅读:
    node体验
    JS练习--prototype的一道题目
    JS的OOP--继承之prototype
    JS的OOP--new一个function背后的实际操作
    JS中new运算符的运算顺序
    thymeleaf 拼接字符串与变量
    spring jpa exists
    LocalDateTime json格式化
    格式化java8 LocalDateTime
    springboot定时任务
  • 原文地址:https://www.cnblogs.com/yico/p/3494124.html
Copyright © 2020-2023  润新知