私はボードゲームをAndroidに移植しています。 ボード自体は1000x1000のビットマップで、png形式では約250kです。 これは、ズームすることができ、コードのこのようなビットと、小画面デバイス上でのユーザーのために、ドラッグ:ビットマップとメモリに問題がありますか?
Bitmap scaledBitmap = Bitmap.createBitmap(mBoardBitmap, left, top, width, width, matrix, true);
board.setBackgroundDrawable(new BitmapDrawable(getResources(), scaledBitmap));
あなたがこれまでのところ、私は私の1000×1000ビットマップをロードするために使用メンバーmBoardBitmapを、持っていることに気づくのonCreate ()。ユーザーが移動したりズームしたりするときに、一度ロードするのが繰り返しよりも一層正しいと思われました。私はボードにレイヤーを追加する必要があるので、その戦略に疑問を持ち始めているので、レイヤーごとにビットマップを作成しています。
私は誤っていない限り、1000M1000ビットマップをいくつか読み込み、そこに保持する必要がありますか、またはユーザーがボードに触れるたびに新しいコードをロードする必要がありますか?
第2に、各MotionEvent.ACTION_MOVEでは、前の2行のコードでボードが再描画されます。これらのscaledBitmapはどうなり、新しいBitmapDrawableが作成されますか?私はメモリクラッシュを経験したことはありませんが、リサイクル/ゴミの回収方法をどうやって確認していますか?
よろしくお願いいたします。
実際には、1ピクセルあたり3バイトまたは4バイトのいずれかを持つので、1000x1000ビットマップの場合は3または4 MBになります(ALPHA_8を使用してロードしない限り、1バイトです)。 – Jave