Android图像大小限制

时间:2013-04-13 04:56:22

标签: android image memory imageview

所以我似乎在我正在编写的Android程序上运行问题。我仍然是一个菜鸟,所以请帮助我理解问题以及如何解决我的问题。 我正在创建一个简单的游戏,我正在为它做所有的图形设计。我的图像是1024x1024或1024x512,分辨率为300像素/英寸。是的,我明白我可能已经过了。我只是希望图形非常清晰,看起来很好看。所有图形都在可绘制文件夹中,而不是在hdpi,ldpi,mdpi,xhdpi或xxhdpi可绘制文件夹中。现在,我遇到的问题是我的应用程序工作正常,直到我再添加一个1024x1024图像到drawable文件夹。现在,应用程序在尝试加载图像时崩溃了。我得到的问题是内存过流。什么活动正在运行并不重要,似乎一旦它达到加载图像的限制就会崩溃。我阅读了android解析页面http://developer.android.com/guide/practices/screens_support.html,但也许我的英语不够理解。 我应该将图像调整为每个分辨率(hdpi,ldpi,mdpi,xhdpi和xxhdpi)吗? 当我从应用程序中的一个活动移动到另一个活动时,是否必须清除上一个活动中的ImageView以清除内存? 请帮助我理解这项工作的方式。

由于 大卫

2 个答案:

答案 0 :(得分:4)

具有讽刺意味的是,您使用的方法可能会使您的图像看起来更糟。

当您将光栅图像放置在根可绘制文件夹中时,它们将被假定为mdpi,并将按比例放大其他密度。这意味着您的1024x1024位图按比例放大并作为2048x2048位图(在大多数情况下远远大于您可能需要的位图)拉入。所以,是的,最好的办法是将图像制作成特定密度所需的尺寸,并在每个需要支持的可绘制文件夹中创建单独的图像。

另外需要注意的是,设置图像的分辨率(你提到300 ppi)并不重要,唯一重要的是像素尺寸。

答案 1 :(得分:0)

我认为你的vm预算没有错误。我在处理我以前的应用程序时遇到了这个问题。搜索后我找到了开发人员指南中的解决方案......请{**}}希望它能解决您的问题。谢谢