【发布时间】:2013-02-21 17:38:18
【问题描述】:
我正在开发一款平板电脑应用。我尝试使用Layout.setBackgroundResource(ResId) 将高分辨率(2223x3553)图像设置为背景。该应用程序在Nexus 7 上测试时崩溃,我不会粘贴堆栈跟踪,因为LogCat 中有大约 300 条红线有 8 或 9 个异常,我花了一段时间才弄清楚原因。在我注意到OutOfMemoryException 后,我得到了它,使用 1280x800 图像,该应用程序运行良好,但由于这些图像被设计为高分辨率,因此出现了一些质量损失。
问题:如何在 Android 中处理高分辨率图像以防止这样的崩溃?所有图像都是本地的,并存储在drawable 文件夹中
【问题讨论】:
-
您需要在将图像加载到内存之前调整其大小。这个答案可能对你有用stackoverflow.com/questions/4837715/…
-
仅供参考,该高度和宽度的位图将需要大约 30 兆字节的 Java 堆。
-
@Maver1ck 您是否尝试过教程,您需要计算样本大小并根据您需要加载图像请查看教程...
-
Nexus-7 只有 1280×800。你的背景图片被杀了。