2012-04-26 17 views
0

私はボードゲームを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

実際には、1ピクセルあたり3バイトまたは4バイトのいずれかを持つので、1000x1000ビットマップの場合は3または4 MBになります(ALPHA_8を使用してロードしない限り、1バイトです)。 – Jave

答えて

関連する問題