Я загружаю растровое изображение из такого ресурса:
Bitmap mBackground = BitmapFactory.decodeResource(res,R.drawable.image);
То, что я хочу сделать, это внести некоторые изменения в растровое изображение до того, как оно будет привлечено к основному холсту в моем методе рисования (поскольку казалось бы расточительным повторить много рисунка в моем основном цикле, когда он не изменится). Я вношу изменения в растровое изображение со следующим:
Canvas c = new Canvas(mBackground);
c.drawARGB(...); // etc
Итак, я получаю исключение
java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
Итак, чтобы избежать этого, я сделал копию растрового изображения так, что он изменен
Bitmap mBackground = BitmapFactory.decodeResource(res,R.drawable.image).copy(Bitmap.Config.ARGB_8888, true);
Что бы избежать проблемы, но иногда вызывает OutOfMemoryExceptions, знаете ли какие-либо лучшие способы достижения того, что я хочу?