当前位置:编程学习 > wap >>

做过的请进,listview显示图片oom

在listview 中显示图片,图片是从网络上拉取的,单张图片大小从几K到500K左右,单张图片是不会内存溢出的,图片显示的时候,不经过压缩,直接显示出来,在listview中可能有很多张图片,一直从服务器上拉取,然后反复在这些图片中拖动,就会造成内存溢出。

我原先用softreference的方式来存图片的Bitmap,会内存溢出
后来改用LruCache,还是会,大家有没有什么办法
--------------------编程问答--------------------  最好是自己做一个Bitmap池,固定10个,然后所有的图片都公用,listView能见的只有几页,不可见的全都默认成你自己的图片。 说的比较草,我觉得大体思想就是这个吧。 --------------------编程问答--------------------
引用 1 楼 hosterZhu 的回复:
最好是自己做一个Bitmap池,固定10个,然后所有的图片都公用,listView能见的只有几页,不可见的全都默认成你自己的图片。 说的比较草,我觉得大体思想就是这个吧。


  是个不错的方法.
另外补充一下,不要把图片全放在softreference,一定要把图片放在SD卡里,然后固定读取一个页面能显示的,不用的一定要及时回收.反正保证内存里只保存一个页面能显示的图片, --------------------编程问答-------------------- --------------------编程问答-------------------- 2楼能不能给点具体的信息,谢谢。 --------------------编程问答--------------------
引用 1 楼 hosterZhu 的回复:
最好是自己做一个Bitmap池,固定10个,然后所有的图片都公用,listView能见的只有几页,不可见的全都默认成你自己的图片。 说的比较草,我觉得大体思想就是这个吧。

我的LruCache就是这样的思想,达到一定容量后,就把老的内存清除,但是还是会OOM --------------------编程问答--------------------
引用 2 楼 kechanghe0705 的回复:
引用 1 楼 hosterZhu 的回复:最好是自己做一个Bitmap池,固定10个,然后所有的图片都公用,listView能见的只有几页,不可见的全都默认成你自己的图片。 说的比较草,我觉得大体思想就是这个吧。

  是个不错的方法.
另外补充一下,不要把图片全放在softreference,一定要把图片放在SD卡里,然后固定读取一个页面能显示的,不用的一定要及时……


我的原来是softReference和本地sd卡缓存结合,不过我看api文档说,google到2.3后,softReference没多大用处了,所以就用了1/4的硬引用,这样界面不会太卡, --------------------编程问答-------------------- 没人弄过吗?
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,