JavaでこのAndroidゲームを作成しています。ただし、ビットマップをロードしてから、画面などに合わせてサイズを変更します (dpi は実際には正確ではありません)。しかし、少量のRAMを搭載したデバイスの場合、16b(mBitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_4444)でビットマップをロードすることも考えています。しかし、ビットマップのサイズを変更すると、32b (Bitmap.Config.ARGB_8888) に戻るようです。
これは、オプションを宣言する方法です。
mBitmapOptions = new BitmapFactory.Options();
mBitmapOptions.inPreferredConfig = Bitmap.Config.ARGB_4444;
これは私がビットマップをロードする方法です:
mBitmaps.add(getResizedBitmap(BitmapFactory.decodeResource(mResources, imagePath, mBitmapOptions)));
これは getResizeBitmap メソッドです。
public Bitmap getResizedBitmap(Bitmap bm)
{
//Original size
int width = bm.getWidth();
int height = bm.getHeight();
//New size (percent)
float newWidth = 1 * mScaleWidth;
float newHeight = 1 * mScaleHeight;
//Create the matrix
Matrix matrix = new Matrix();
matrix.postScale(newWidth, newHeight);
//Recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, true);
//Recycle the old Bitmap
bm.recycle();
return resizedBitmap;
}
新しいビットマップがオプションを無視する理由はありますか?