【发布时间】:2017-01-14 21:55:34
【问题描述】:
我听说对动画使用位图列表是个坏主意。但是直到现在我还没有遇到证明这是真的情况。
我的代码效果很好。但只能在模拟器上,或者在我运行 Android 6 的手机上。任何低于此值的东西,我都会在它完成初始化之前得到内存不足。
这就是我加载图像的方式:
public static Image[] flameIs = new Image[300];
for (int i=0;i<300;i++) {
if (i>=10) framePref="000";
if (i>=100) framePref="00";
Assets.flameIs[i] = g.newImage("frames/lighter_" + framePref +i+ ".png", ImageFormat.RGB565);
}
所以它就像 300 个 PNG,8 位,每个大小约为 12k。我们说的是小于 4MB 的图像。
应用程序稍后所做的就是永远在循环中运行这些帧。
有没有办法避免“内存不足”?
【问题讨论】:
-
位图的平均尺寸是多少?
-
都是459x620
-
那么每个图像需要 284,580 字节来将未压缩的数据存储在内存中(459 x 620 x 8 位)。堆上 81 MB 的 300 张图像。
-
那么您最初的建议是更紧密地裁剪图像吗?有很多可以裁剪的黑色空间。
-
你用这些图片做什么?
标签: android performance