请查看以下代码:
public Pixmap newPixmap(String fileName, PixmapFormat format) {
Config config = null;
if (format == PixmapFormat.RGB565)
config = Config.RGB_565;
else if (format == PixmapFormat.ARGB4444)
config = Config.ARGB_4444;
else
config = Config.ARGB_8888;
Options options = new Options();
options.inPreferredConfig = config;
InputStream in = null;
Bitmap bitmap = null;
try {
in = assets.open(fileName);
bitmap = BitmapFactory.decodeStream(in);
if (bitmap == null)
throw new RuntimeException("Couldn't load bitmap from asset '"
+ fileName + "'");
} catch (IOException e) {
throw new RuntimeException("Couldn't load bitmap from asset '"
+ fileName + "'");
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
}
}
}
if (bitmap.getConfig() == Config.RGB_565)
format = PixmapFormat.RGB565;
else if (bitmap.getConfig() == Config.ARGB_4444)
format = PixmapFormat.ARGB4444;
else
format = PixmapFormat.ARGB8888;
return new AndroidPixmap(bitmap, format);
}
我不明白这一部分:
Options options = new Options();
options.inPreferredConfig = config;
看起来,程序员试图配置加载位图的格式。我知道Options-Class是BitmapFactory的嵌套类。
但是在代码中的任何地方都使用了对象选项。为什么?
为什么在我加载位图之前使用optionss对象来配置格式时,是否有if请求获取格式?
我很困惑。谢谢你的帮助。
答案 0 :(得分:0)
我不知道你的代码来自哪里,但如果你想(我怀疑你这样做)想要使用Options
对象,那么你应该改变你的bitmap = BitmapFactory.decodeStream(in);
以便像这样使用它:bitmap = BitmapFactory.decodeStream(in, null, options);
答案 1 :(得分:0)
解码器将尝试解码为此内部配置: options.inPreferredConfig = config; 基本配置是: 位图配置描述了像素的存储方式。这会影响质量(颜色深度)以及显示透明/半透明颜色的能力。 读这个: http://developer.android.com/reference/android/graphics/Bitmap.Config.html