首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ImageDecoder获取可变位图?

如何使用ImageDecoder获取可变位图?
EN

Stack Overflow用户
提问于 2020-01-17 06:31:54
回答 4查看 730关注 0票数 3

我正在创建位图如下

代码语言:javascript
复制
       ImageDecoder.Source source = ImageDecoder.createSource(this.getContentResolver(), mSourceUri);
        try {
            bitmap = ImageDecoder.decodeBitmap(source));
        } catch (IOException e) {
            e.printStackTrace();
        }

这将返回不变的位图。我看到了google文档,有一个setMutableRequired()方法,但是我找不到如何使用这个方法。它在ImageDecoder和源代码上都不起作用

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-01-17 11:02:30

更漂亮的解决方案

代码语言:javascript
复制
imageBitmap = imageBitmap.copy(Bitmap.Config.ARGB_8888, true);

参考这个答案

票数 1
EN

Stack Overflow用户

发布于 2020-05-01 07:14:15

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

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

代码语言:javascript
复制
ImageDecoder.decodeBitmap(imageSource, (decoder, info, source) -> {
    decoder.setMutableRequired(true);
});
票数 3
EN

Stack Overflow用户

发布于 2020-07-21 20:16:06

来自API 28

代码语言:javascript
复制
ImageDecoder.Source source = ImageDecoder.createSource(getContentResolver(), imageUri);
            ImageDecoder.OnHeaderDecodedListener listener = new ImageDecoder.OnHeaderDecodedListener() {
                @Override
                public void onHeaderDecoded(@NonNull ImageDecoder decoder, @NonNull ImageDecoder.ImageInfo info, @NonNull ImageDecoder.Source source) {
                    decoder.setMutableRequired(true);
                }
            };
            bitmap = ImageDecoder.decodeBitmap(source, listener);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59782266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档