0

ビットマップを作成し、キャンバスでそれを使用して円を描画します。このメソッドは、アクティビティが呼び出され、アクティビティが複数回呼び出されるたびに呼び出されるため、1536000-byte external allocation too large for this process エラーがメモリの問題であることを知っているようなエラーが発生しますが、どのようにビットマップをクリアし、2 回目のアクティビティ呼び出しでも使用します。

私のコードは:

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 は複数回呼び出すことができるため、ビットマップとそのメモリを維持するにはどうすればよいですか?

4

1 に答える 1

0

画像をメモリに保持したい特別な理由はありますか? 私が間違っていなければ、「アクティビティが呼び出されるたびに」メソッドを呼び出すので、startActivity() で開始されるたびにメソッドを呼び出すと思います。この場合、ユーザーはフォアグラウンド アクティビティの画像を見ることができるため、メモリ内のすべての画像を一度に維持しても意味がありません。onStop() メソッドで画像をファイルに保存し、必要に応じて onResume() メソッドで再構築することをお勧めします。

于 2013-05-25T07:58:29.023 に答える