3

I'm trying to do something like this:

Bitmap bmp;
BitmapFactory.Options.inMutable = true;
bmp = BitmapFactory.decodeByteArray(data, 0, data.length);

But I'm getting an error under BitmapFactory.Options.inMutable = true;

Cannot make a static reference to the non-static field BitmapFactory.Options.inMutable

I'm sure the solution is probably something simple, but I'm unsure of why it's not working.

2 Answers2

4

You need to create an instance of the BitmapFactory.Options class. Something like:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inMutable = true;
BitmapFactory.decodeByteArray(data, 0, data.lentgh, options);
matiash
  • 53,931
  • 16
  • 121
  • 152
0

inMutable is not static field. Try this:

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

or even better this:

Bitmap bmp;
bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
Bitmap mutableBitmap = bmp.copy(Bitmap.Config.ARGB_8888, true);
amukhachov
  • 5,702
  • 1
  • 39
  • 59
  • Hmmm... I took my answer from here: http://stackoverflow.com/questions/7359173/create-bitmap-from-bytearray-in-android but it seems like copy should be used because of memory. –  May 05 '14 at 16:10