• 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好像过度封装了。

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

  • 相关阅读:
    一个好的时间函数
    Codeforces 785E. Anton and Permutation
    Codeforces 785 D. Anton and School
    Codeforces 510 E. Fox And Dinner
    Codeforces 242 E. XOR on Segment
    Codeforces 629 E. Famil Door and Roads
    Codeforces 600E. Lomsat gelral(Dsu on tree学习)
    Codeforces 438D The Child and Sequence
    Codeforces 729E Subordinates
    【ATcoder】D
  • 原文地址:https://www.cnblogs.com/yico/p/3494124.html
Copyright © 2020-2023  润新知