java.lang.OutOfMemoryError 但有 70Kb 的 png 图片

java.lang.OutOfMemoryError but with 70Kb of png image

好的,首先,这是我第一次在堆栈上提问,所以如果我做的不是 "legal",请不要犹豫告诉我...

好的,现在我真正的问题是...

我正在尝试将一些 png 文件加载到内存中。一切都很顺利,我的游戏运行良好。但后来我决定改变我的游戏的分辨率,因为它有点草率(锯齿)。

我将位图从 1024*650 更改为 2048*1300。并将我所有 png 的大小加倍......起初我认为这没问题,因为我总共只有 2.8 Mb。 (而且我之前已经加载了更多没有任何问题)。

但是当我启动时,友好的 eclipse 在第四个 png 文件处告诉我 java.lang.OutOfMemoryError(因此加载了大约 70 Kb 的文件)。如果我在 phone 上构建它,没问题,而且我有 moto G,所以真的不是杀手。

所以我的问题是为什么会这样?最重要的是,我怎样才能防止这种情况发生。真的 2.5Mb 的文件应该是可以管理的,因为我已经这样做了。那么,为什么决议会以这种方式影响我的记忆?

提前致谢,如果我不清楚,请见谅...

2048×1300 像素为 10 MiB(每个像素占用 4 个字节)。这是相当多的,尤其是低端手机的限制可能低至每个应用程序 16 MiB。你需要 make it more efficient.