我正在用 Java 创建这个 Android 游戏。但是,我加载位图,然后调整它们的大小以适合屏幕等(dpi 并不准确)。但我的想法也是为具有少量内存的设备加载 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;
}
任何想法为什么新的位图会忽略这些选项?