我创建了一个Bitmap并在Canvas中使用它绘制一个圆圈,每次调用Activity时调用此方法,并且多次调用Activity,以便我得到一些错误,如1536000-byte external allocation too large for this process
我知道错误是内存问题但是如何清除位图并且还在第二次使用Activity调用..
我的代码是:
private void Draw_Hold_Circle() {
Bitmap bitmap_hold = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
Canvas canvas_hold = new Canvas(bitmap_hold);
canvas_hold.drawArc(rect_open, 0, 360, false, mOutlinePaint);
}
此方法被调用4次,MainActivity可以调用多次,所以如何维护位图及其内存?
答案 0 :(得分:0)
为什么要在内存中保存图像有什么特殊原因吗?如果我没有错,你可以“每次调用你的活动时”调用你的方法,所以我猜你的意思是每次启动startActivity()。如果是这种情况,则无需立即将所有图像保存在内存中,因为用户将能够看到前景活动中的图像。我建议您将图像保存到onStop()方法的文件中,并在必要时在onResume()方法上重建它。