标签:
网上关于这个方面的文章也不少,基本的思路是线程+缓存来解决。下面提出一些优化:
1、采用线程池
2、内存缓存+文件缓存
3、内存缓存中网上很多是采用SoftReference来防止堆溢出,这儿严格限制只能使用最大JVM内存的1/4
4、对下载的图片进行按比例缩放,以减少内存的消耗
具体的代码里面说明。先放上内存缓存类的代码MemoryCache.java:
也可以使用SoftReference,代码会简单很多,但是我推荐上面的方法。
下面是文件缓存类的代码FileCache.java:
最后最重要的加载图片的类,ImageLoader.java:
主要流程是先从内存缓存中查找,若没有再开线程,从文件缓存中查找都没有则从指定的url中查找,并对bitmap进行处理,最后通过下面方法对UI进行更新操作。
在你的程序中的基本用法:
比如你的放在你的ListView的adapter的getView()方法中,当然也适用于GridView。
OK,先到这。
Android之ListView异步加载网络图片(优化缓存机制)
标签:
原文地址:http://www.cnblogs.com/lgy0069/p/5223330.html