将不可变的位图文件转换为可变的位图

时间:2015-05-24 16:33:26

标签: android bitmap immutability mutable

A:

 Bitmap immutableBmp= BitmapFactory.decodeResource(getApplicationContext().getResources(),R.drawable.sample);
 mutableBitmap=immutableBmp.copy(Bitmap.Config.ARGB_8888, true);

B:

Bitmap immutableBmp= BitmapFactory.decodeFile(filePath);
mutableBitmap=immutableBmp.copy(Bitmap.Config.ARGB_8888, true);

C:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inMutable=true;
myBitmap=BitmapFactory.decodeFile(filePath,options);

A作品但B和C不作品。我试图将不可变位图转换为可变位图。它适用于资源图像,但不适用于文件图像。有什么问题?

2 个答案:

答案 0 :(得分:3)

发现这个:

Bitmap bmp_Copy = bmp_Base.copy(Bitmap.Config.ARGB_8888,true);

答案 1 :(得分:1)

我发现了问题!上面的所有3种方法都有效,我的图像分辨率出现了问题,所以我认为代码不起作用而且它不可变但我错了。这是将不可变图像更改为可变图像的另一种解决方案。

BitmapFactory.decodeResource returns a mutable Bitmap in Android 2.2 and an immutable Bitmap in Android 1.6