从ByteArray创建可变位图...导入无效?

4
我正在尝试做类似于以下内容的事情:
Bitmap bmp;
BitmapFactory.Options.inMutable = true;
bmp = BitmapFactory.decodeByteArray(data, 0, data.length);

但是我在BitmapFactory.Options.inMutable = true;下面得到了一个错误。

无法将静态引用转换为非静态字段 BitmapFactory.Options.inMutable

我相信解决方案可能很简单,但是我不确定为什么它不能工作。

2个回答

4
您需要创建一个BitmapFactory.Options类的实例。例如:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inMutable = true;
BitmapFactory.decodeByteArray(data, 0, data.lentgh, options);

会尝试这个。我刚刚是使用来自此链接的代码片段:https://dev59.com/6Gs05IYBdhLWcg3wPfgR - user2676468
谢谢。感谢澄清。 - user2676468
没问题。现在已经修好了。 :) - matiash

0

inMutable 不是静态字段。尝试这样做:

BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inMutable = true;
BitmapFactory.decodeByteArray(data, 0, data.length(), opts);

或者更好的是这样:

Bitmap bmp;
bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
Bitmap mutableBitmap = bmp.copy(Bitmap.Config.ARGB_8888, true);

嗯...我从这里得到了答案:https://dev59.com/6Gs05IYBdhLWcg3wPfgR 但是由于内存问题,似乎应该使用副本。 - user2676468

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接