ボードゲームをAndroidに移植しています。ボード自体は1000x1000ビットマップで、png形式で約250kかかります。小さな画面のデバイスのユーザーの場合、次のようなコードを使用して、ズームおよびドラッグできます。
Bitmap scaledBitmap = Bitmap.createBitmap(mBoardBitmap, left, top, width, width, matrix, true);
board.setBackgroundDrawable(new BitmapDrawable(getResources(), scaledBitmap));
これまでのところ、メンバーmBoardBitmapがあり、これを使用して1000x1000ビットマップonCreate()をロードしています。ユーザーが移動またはズームしたときに、繰り返しではなく、一度だけロードする方が適切であるように思われました。ボードにレイヤーを追加する必要があるため、その戦略に疑問を呈し始めています。したがって、レイヤーごとにビットマップを追加する必要があります。
それで、1000x1000ビットビット(間違っていない限り1メガバイトのメモリ)をいくつかロードしてそこに保持する必要がありますか、それともユーザーがボードに触れるたびに新しくロードする必要がありますか?
次に、各MotionEvent.ACTION_MOVEで、前の2行のコードを使用してボードが再描画されます。これらのscaledBitmapと新しいBitmapDrawableはどうなりますか?メモリがクラッシュしたことはありませんが、リサイクル/ガベージコレクションを確認するにはどうすればよいですか?
よろしくお願いします。