我如何使用BitmapFactory.options?

时间:2013-10-16 15:48:39

标签: java android bitmap options bitmapfactory

请查看以下代码:

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请求获取格式?

我很困惑。谢谢你的帮助。

2 个答案:

答案 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