代码改变世界

android ListView使用软引用解决加载网络图片快速滑动卡顿

2015-06-02 14:11  android达人  阅读(1090)  评论(0编辑  收藏  举报

前段时间做了一个新闻类的项目,新闻列表中的图片都是网络图片,刚开始是自定义ImageView(等于是在其中加了一个异步下载然后设置背景)虽然可以加载网络图片,不过当快速滑动的时候会很卡顿,而且前期没有对Bitmap做回收,导致OOM(内存溢出),后来上网查了各种资料,大概有两种思路:

1.滑动的时候不加载图片,等滑动停止之后再加载,这样就需要对ListView进行OnScrollListener监听,得到屏幕上显示的开始和结束的位置(当有headView和footerView时需要换算)然后下载对应项的网络图片,每下载一张就对adapter进行notifyDataSetChanged操作,缺点:代码量相对较大,还有就是滑动和不滑动需要用到锁来控制,虽然按照这个思路实现了,不过感觉比较麻烦,不靠谱;

2.就是使用软引用,不多废话了,如图所示:

源码下载地址:http://www.eoeandroid.com/thread-589993-1-1.html