create Bitmap from byteArray in android create Bitmap from byteArray in android android android

create Bitmap from byteArray in android


You need a mutable Bitmap in order to create the Canvas.

Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length);Bitmap mutableBitmap = bmp.copy(Bitmap.Config.ARGB_8888, true);Canvas canvas = new Canvas(mutableBitmap); // now it should work ok

Edit: As Noah Seidman said, you can do it without creating a copy.

BitmapFactory.Options options = new BitmapFactory.Options();options.inMutable = true;Bitmap bmp = BitmapFactory.decodeByteArray(data, 0, data.length, options);Canvas canvas = new Canvas(bmp); // now it should work ok