为什么带有inPreferredConfig的BitmapFactory.decodeResource = Bitmap.Config.ALPHA_8会返回Bitmap.Config.ARGB_8888的位图?

时间:2017-11-25 16:09:03

标签: android bitmap bitmapfactory

我想从32位PNG图像创建一个ALPHA_8配置的位图。为此,我致电decodeResource(Resources res, int id, Options opts) opts.inPreferredConfig = Bitmap.Config.ALPHA_8。但是,它返回带有ARGB_8888配置的位图:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ALPHA_8;

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), id, options);

// Output: "bitmap.getConfig() returns ARGB_8888"
Log.w(tag, "bitmap.getConfig() returns " + bitmap.getConfig());

为什么会这样?如何让它正常工作?

1 个答案:

答案 0 :(得分:0)

因为你的源位图无法被ALPHA_8解码,所以Android自动选择ARGB888进行解码。