gpt4 book ai didi

Android:如何使用大量的Bitmaps?

转载 作者:行者123 更新时间:2023-12-02 02:14:12 28 4
gpt4 key购买 nike

我正在将逐帧动画绘制到 Canvas 上,我有大约 100 张图片用于执行此操作(总共约 1.5MB)。我从这样做开始:

s000 = BitmapFactory.decodeResource(getResources(), R.drawable.s0);
s001 = BitmapFactory.decodeResource(getResources(), R.drawable.s1); ...etc...

到每个图像,然后将每个图像绘制到 Canvas 上:

c.drawBitmap(s000, X, Y, null);

制作动画。

问题是我收到此错误“OutOfMemoryError:位图大小超出 VM 预算”。我将如何在不出现此错误的情况下加载所有图片? 1.5MB 内存太大还是我有内存泄漏?我该怎么做才能修复内存泄漏?

非常感谢您的帮助。我是 android 的菜鸟所以你能不能留下例子而不只是告诉我做一些我不会理解的事情:)再次感谢

最佳答案

对你绘制的每一帧都这样尝试:

s000 = BitmapFactory.decodeResource(getResources(), R.drawable.s0);
c.drawBitmap(s000, X, Y, null);
s000.recycle();
s000 = null;

这将在绘制框架后尝试释放内存。

编辑

myImgLen = 30;
Bitmap bitmap = null;
for (int i = 0; i < myImgLen; i++) {
bitmap = BitmapFactory.decodeResource(getResources(), getResource‌​s().getIdentifier("s" + i, "drawable", getPackageName()));
c.drawBitmap(bitmap, X, Y, null);
bitmap.recycle();
bitmap = null;
}

关于Android:如何使用大量的Bitmaps?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11341817/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com