【问题标题】:Out of memory after loading multiple textures加载多个纹理后内存不足
【发布时间】:2014-07-03 13:32:44
【问题描述】:
现在我正在开发动态壁纸。
我的主角有大约 75 个动画图像,但有一处我无法将其加载到内存中。
它会引发 OutOfMomory 异常。
基本上我必须从头到尾不断地改变我的主角的框架。所以我编写了加载所需图像并卸载其他图像的算法。但它不断调用垃圾收集程序,导致动画无法按预期流畅运行。
那么如何管理这么多的动态壁纸图片呢?请在此处提供一些指导。
【问题讨论】:
标签:
android
bitmap
textures
andengine
【解决方案1】:
也许 Nicolas 在here 发布的提示会对您有所帮助。
短版:
- 减小纹理大小。
- 减少纹理切换(也就是尝试使用 spritesheets,以便尽可能少地更改纹理)
- 使用质量较低的纹理(RGBA4444 或 RGB565 而不是 RGBA8888)..
- 在实体不需要更新时调用 setIgnoreUpdate。
- 尽可能使用 SpriteBatches。
【解决方案2】:
您还可以在应用程序标签中添加“android:largeHeap=true”以及 LordRaydenMK 建议的提示。