首页 > 解决方案 > 如何使用 ImageDecoder 获取可变位图?

问题描述

我正在创建位图如下

       ImageDecoder.Source source = ImageDecoder.createSource(this.getContentResolver(), mSourceUri);
        try {
            bitmap = ImageDecoder.decodeBitmap(source));
        } catch (IOException e) {
            e.printStackTrace();
        }

这将返回不可变位图。我看到了谷歌文档并且有一种方法setMutableRequired(),但我找不到如何使用这种方法。它不适用于 ImageDecoder 以及源

标签: androidbitmapimagedecoder

解决方案


提供一个ImageDecoder.OnHeaderDecodedListener作为第二个参数ImageDecoder.decodeBitmap()

在侦听器中,您将获得ImageDecoder,您可以对其进行所需的更改。

ImageDecoder.decodeBitmap(imageSource, (decoder, info, source) -> {
    decoder.setMutableRequired(true);
});

推荐阅读