问题描述
我尝试加载JPEG图像资源为位图格式ARGB_8888的:
I try to load jpeg resource image to Bitmap of ARGB_8888 format:
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap b = BitmapFactory.decodeResource(resources, resId, opts);
Log.d("test", b.getConfig().toString());
下面的渣油的是JPEG图像资源的ID。
而输出为 RGB_565 。
在Android 2.2及2.3模拟器尝试这个。
Here resId is the id of a jpeg image resource.And the output is "RGB_565".Tried this in emulators of android 2.2 and 2.3.
在preferredConfig的文件说:
Docs of 'inPreferredConfig' say:
如果这是为非空,去codeR会尽量去code到这个内部
组态。如果为null,或者请求不能被满足,
德codeR会尽量挑选基础上,最佳匹配的配置
系统的屏幕深度和原始图像这样的特征
因为如果有每个像素的阿尔法(需要配置也一样)。
图像的加载默认ARGB_8888配置。
所以,我在击球的情况下,的要求不能得到满足的? :)
但老实说,我看不出它如何是很难去code RGB_565到ARGB_8888。
So am I hitting the case of "the request cannot be met"? :)But I honestly can't see how it is very difficult to decode RGB_565 into an ARGB_8888.
所以,我想,也许我做错了,或这是Android的一个bug ......
So I thought maybe I am doing wrong or this is a bug in Android...
推荐答案
在加载JPEG必须设置alpha通道为true:
When loading jpeg you must set alpha channel to true:
bitmap.setHasAlpha(true);
这篇关于BitmapFactory.de codeResource()在$ P $忽略了JPG图像pferredConfig选项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!