存储位图信息Android的最有效方法

时间:2015-03-09 13:25:51

标签: android image bitmap

目前,我正在使用WeakHashMap存储我的BitMap并将其链接到我的密钥,但我注意到它开始使用大量的RAM。有没有更好的解决方案来缓存BitMaps直到我需要它们?应用程序关闭后我不太可能需要图像,因此不需要长期解决方案。

谢谢!

3 个答案:

答案 0 :(得分:2)

  

我需要将它们保存在内存中,以防用户滑回到   以前的视图可以节省带宽并使ViewPager更具响应性

FragmentStateAdapter就是为了这个。同时使用setOffscreenPageLimit()setRetainInstance()

在运行时内存中存储Bitmap个对象不是一个好主意,迟早会导致OutOfMemoryError被抛出。

答案 1 :(得分:0)

使用LruCache。开发者网站上有很多在线guides

答案 2 :(得分:0)

  

应用程序关闭后我不太可能需要图像,因此不需要长期解决方案。

将图像存储在缓存中不会有问题,因为即使关闭应用程序或从设置中清除应用程序数据,系统也不会从缓存中清除图像。 对于图像下载,您可以使用以下图像库: 图像加载器: https://github.com/nostra13/Android-Universal-Image-Loader 它为您提供了将图像保存在缓存中的选项。

您也可以使用排球库。但在此,您必须实现自己的缓存存储代码。 http://developer.android.com/training/volley/index.html

否则,您还可以为缓存实现自己的代码,您可以在其中使用内存磁盘进行缓存。 http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html#disk-cache