我正在编写一个Android应用程序,它将有一个图像提要,类似于例如Instagram应用程序。我的问题是如何缓存这些图像,以免出现内存异常?
我已经阅读了一些教程,但所有这些教程都在LruCache中缓存Bitmaps。我可能错了,但我认为ImageView中的位图和缓存的位图使用相同的内存。
我正在考虑将压缩的图像(例如JPEG)存储在内存缓存中(当然还有磁盘上),只有当它在屏幕上可见时才会显示,但CPU会耗尽电池,因为当它不可见时会不断清除ImageView并解压缩图像并在视口中显示它。即使我在一个新线程上进行滚动,我也不确定滚动是否会无法进行。
另一种方法是按照我上面的描述进行操作,但是我不会立即从imageview中删除位图,只有当有很多图像时我才会用完内存。
您怎么看?
答案 0 :(得分:2)
以下是有关如何在内存和磁盘中缓存图像的示例:
但是你也可以使用已经非常好用的库:
http://square.github.io/picasso/
第一个链接还包含有关如何处理位图以避免outOfMemory.