加载多个纹理后内存不足

时间:2014-07-03 13:32:44

标签: android bitmap textures andengine

现在我正在开发动态壁纸。 我的主角有大约75个动画图像,在一个地方我无法将其加载到内存中。 它会抛出OutOfMomory异常。

基本上我必须不断改变主角的帧从头到尾。所以我写了加载所需图像的算法并卸载其他图像。但它连续调用垃圾收集器程序,因此结果动画无法按预期顺利运行。

那么如何为动态壁纸管理那么多图像?请在这里提供一些指导。

2 个答案:

答案 0 :(得分:1)

也许Nicolas发布的提示here会帮助你。

简短版本:

  1. 减少纹理大小。
  2. 减少纹理切换(也就是尝试使用spritesheets,以便纹理需要尽可能少地改变)
  3. 使用质量较低的纹理(RGBA4444或RGB565代替RGBA8888)..
  4. 调用setIgnoreUpdate,其中实体不需要更新。
  5. 尽可能使用SpriteBatches。

答案 1 :(得分:1)

您还可以在应用程序标记中添加“android:largeHeap = true”以及LordRaydenMK建议的提示。