有关图片的Android应用优化

时间:2013-02-23 10:38:49

标签: android image optimization

我正在处理的应用程序将有很多图像(每个列表项都有图像的列表视图,带图像的网格视图,图像库),因此在drawable文件夹开发结束时将大约为1000或更多图片。现在我在drawable文件夹中有大约200张图片。

将所有图像放在可绘制文件夹中是否正确或哪种图像是添加它们的最佳方式?

图片用于:

  • 的GridView

  • 每个Gridview项的ListView

  • 每个listView项目的图库

4 个答案:

答案 0 :(得分:0)

您可以将图像存储在SD卡上。存储在资源文件夹中会增加应用程序大小。

答案 1 :(得分:0)

你的apk在谷歌播放上不能超过50 MB这里是扩展包上的链接

http://support.google.com/googleplay/android-developer/answer/2481797?hl=en

答案 2 :(得分:0)

如果要处理大量图像,最好将它们保存在assets文件夹中。

可绘制文件夹,用于存储图标和背景,在某些情况下,您不会拥有大量图像,我可以用来存储列表和网格的图像。这是因为drawable上的图像被预先加载到内存中,所以如果你有很多高分辨率的图像,它们可以消耗所有设备的ram内存。

另一方面,资产文件夹非常适合这种情况,因为图像存储为原始图像,当您想要使用它们时,您必须将它们构建为位图,因此您负责构建和使用它们当你需要它们时。

将图像存储在资源上也意味着您必须了解内存消耗,因为如果您加载包含大量高分辨率图像的列表或网格,那么您将填满您的内存无论如何。我建议使用持有人制作你的列表和网格,所以每当一个项目没有在屏幕上显示时,它就不会存储在ram上。

如果您需要同时在屏幕上显示多个高分辨率图像,我建议使用BitmapFactory.options.inSampleSize构建它们。这允许您将大小参数传递给您即将构建的位图,因此您不需要构建一个与要存储它的容器大小相比较大的位图。

答案 3 :(得分:0)

来自资源的图片加载速度更快(简单地通过ID) 但如果您存储1000多张图片,您的应用程序将会非常庞大 所以我的建议是:将图像保存为某个Web服务器上的zip,用户首次安装应用程序后,应将其下载并解压缩到SD卡文件夹。