首页 > 其他 > 详细

Thinking in Google Doc

时间:2015-11-07 19:14:01      阅读:301      评论:0      收藏:0      [点我收藏+]

学习谷歌文档,总结如下:


1.图片加载框架的封装

    1)利用HttpURLConnection来封装网络加载图片的方法

    2)创建自定义的AsyncTask来封装1)中加载网络图片的方法,并显示到控件上。

    3)暴露方法封装2)中自定义的加载并显示图片的AsyncTask

    走完上面这几步,只需调用一个方法,就可以从网络上加载一张图片并且显示到控件上了。

  

  解决List并发下载图片错位的问题     

  但是,谷歌文档中说上面代码会存在一个问题。就是如果在List里使用,利用的话,可能会发生图

  图片错位的问题:就是某个item显示的图片,可能显示的图片是之前的item的图片。因为之前的这

  张图片可能加载时间比较长,滑动后imageview是复用的,所以后面的item可能会显示之前的item的

  图片。


  这种就是由于并发产生的问题,谷歌工程师是这么解决问题的:

  1》定义一个类 class DownloadedDrawable extends ColorDrawable,然后将下载的异步任务

    DownloadAsyncTask与其绑定起来。

  2》定义2个方法 

    BitmapDownloaderTask getBitmapDownloaderTask(ImageView imageView) 

    ---得到与ImageView绑定的异步下载任务   

    boolean cancelPotentialDownload(String url, ImageView imageView) 

    --取消可能正在进行的下载   

        判断与ImageView绑定的异步下载任务的URL,如果为null或者是与当前方法传递进来

     URL不一致,说明异步下载任务正在执行之前的下载,  

    

本文出自 “行意天下” 博客,请务必保留此出处http://4259297.blog.51cto.com/4249297/1710561

Thinking in Google Doc

原文:http://4259297.blog.51cto.com/4249297/1710561

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!