我正在从我的资产文件夹中加载我的位图和首选的配置RGB565并记录他们的格式配置,但我总是得到ARGB8888。我确定我的一些位图的配置是RGB565,但我认为它们涵盖了像ARGB8888位图。如何使用自己的格式加载它们?
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Config.RGB_565;
Bitmap bitmap = BitmapFactory.decodeStream(in,null,options);
Log.d("a", fileName+" "+bitmap.getConfig().name());
答案 0 :(得分:1)
你不会总是这样得到RGB565 - 这取决于编码(它是一种首选编码)
加载位图后,您可以创建一个新位图并将其复制到那里......因为您实际上正在重新编码图像。
Bitmap maskBitmap = Bitmap.createBitmap( orig.getWidth(), orig.getHeight(), Bitmap.Config.RGB_565 );
Canvas c = new Canvas();
c.setBitmap(maskBitmap);
Paint p = new Paint();
p.setFilterBitmap(true); // possibly not nessecary as there is no scaling
c.drawBitmap(orig,0,0,p);
orig.recycle();
然后你可以使用maskBitmap作为加载的位图。