0

ボードゲームを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はどうなりますか?メモリがクラッシュしたことはありませんが、リサイクル/ガベージコレクションを確認するにはどうすればよいですか?

よろしくお願いします。

4

1 に答える 1

0

Android 用の新しいメモリキャッシュを使用できます: http://developer.android.com/training/displaying-bitmaps/cache-bitmap.htmlその後、メモリから取り出された画像を再ダウンロード/再ロードするだけで済みます。クラッシュ。

于 2012-04-26T10:03:26.373 に答える