0

我创建了一个位图并在 Canvas 中使用它来绘制一个圆圈,并且每次调用 Activity 并且多次调用 Activity 时都会调用此方法,这样我就会遇到一些错误,就像1536000-byte external allocation too large for this process 我知道错误是内存问题但是如何清除位图并在第二次活动调用时使用..

我的代码是:

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可以调用多次,那么如何维护Bitmap及其内存?

4

1 回答 1

0

您想在内存中保留图像有什么特殊原因吗?如果我没记错的话,你把你的方法称为“每次调用你的活动”,所以我猜你的意思是每次它都是从 startActivity() 开始的。如果是这种情况,那么一次维护内存中的所有图像是没有意义的,因为用户将能够在您的前台活动中看到那个图像。我建议您将图像保存到 onStop() 方法上的文件中,并在必要时在 onResume() 方法上重建它。

于 2013-05-25T07:58:29.023 回答