如何缓存图片?

时间:2015-01-26 17:38:53

标签: android performance caching

我正在编写一个Android应用程序,它将有一个图像提要,类似于例如Instagram应用程序。我的问题是如何缓存这些图像,以免出现内存异常?

我已经阅读了一些教程,但所有这些教程都在LruCache中缓存Bitmaps。我可能错了,但我认为ImageView中的位图和缓存的位图使用相同的内存。

我正在考虑将压缩的图像(例如JPEG)存储在内存缓存中(当然还有磁盘上),只有当它在屏幕上可见时才会显示,但CPU会耗尽电池,因为当它不可见时会不断清除ImageView并解压缩图像并在视口中显示它。即使我在一个新线程上进行滚动,我也不确定滚动是否会无法进行。

另一种方法是按照我上面的描述进行操作,但是我不会立即从imageview中删除位图,只有当有很多图像时我才会用完内存。

您怎么看?

1 个答案:

答案 0 :(得分:2)

以下是有关如何在内存和磁盘中缓存图像的示例:

http://androidexample.com/Download_Images_From_Web_And_Lazy_Load_In_ListView_-_Android_Example/index.php?view=article_discription&aid=112&aaid=134

但是你也可以使用已经非常好用的库:

http://square.github.io/picasso/

第一个链接还包含有关如何处理位图以避免outOfMemory.

的说明