最有效的显示图像的方式

时间:2013-08-01 00:12:01

标签: java android image bitmap

我的应用程序在2个不同的类(和布局)中使用29个图像。在1个布局中,有1个图像视图在最多25个图像之间变化,然后另一个布局是滚动视图,其中包含一次最多3个或4个在屏幕上可见的所有图像。以前我将图像保存为.jpg,每张图片大小为720 * 540,大小为200-300kb。在我使用图像的2个布局之间进行了我的应用程序内存不足问题;它使用超过100 MB。我对位图进行了一些研究,并尝试将它们用于我的图像,但它们并没有多大帮助,因为我仍然遇到内存问题而且它们的.apk大小增加了近3倍。加载图像的最佳方式是什么,它是从.jpg或位图或其他方式绘制的?任何建议将不胜感激。

2 个答案:

答案 0 :(得分:2)

当位图在内存中时,它是未压缩的。原始格式无关紧要。你可以指望每个图像采取宽度*高度* 4字节的内存。例如,每个720x540图像需要大约1.5MB的内存。

从哪里加载它们并不重要,至少就所需的内存量而言。

现在读到这个,

  

http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html

答案 1 :(得分:0)

您可以阅读系统库的源代码,然后您就可以完全理解如何操作位图。第一次获取图像时,必须解码原始文件,并将其保存到缓存文件中。然后在下一次,您只需解码缓存文件,这更快。你的记忆力有限。不要指望存储所有位图,只是想要在屏幕上显示的位图。缩略图的大小远小于完整图像。如果你想在屏幕上放置8~10个缩略图,那就没问题了。当用户单击缩略图以浏览完整图像时,您可以将完整图像加载到内存中,并回收其他位图。