Converting an immutable bitmap to be mutable in Android

By: Kevin | June 11, 2014

I ran into this error while I was working with a custom view that allowed users to draw on a image using their finger.

java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor

I found the quick fix is to just make a copy of the original bitmap and pass a true boolean which is the flag to make the copy mutable.

Bitmap immutableBitmap = coming from where ever your source is....
Bitmap mutableBitmap = immutableBitmap.copy(Bitmap.Config.ARGB_8888, true);//<--true makes copy mutable 
Canvas canvas = new Canvas(mutableBitmap);

Easy peasy!


Documentation here.