Ich bin wie so eine Bitmap aus einer Ressource geladen:Laden einer Ressource auf ein veränderbares Bitmap
Bitmap mBackground = BitmapFactory.decodeResource(res,R.drawable.image);
Was ich tun möchte ist, einige Änderungen an der Bitmap, bevor es in auf der großen Leinwand gezogen wird mein zeichnen Methode (Es wäre verschwenderisch, viele Zeichnungen in meiner Hauptschleife zu wiederholen, wenn es nicht ändern wird). Ich mache die Änderungen an der Bitmap mit den folgenden:
Canvas c = new Canvas(mBackground);
c.drawARGB(...); // etc
So natürlich bekomme ich eine Ausnahme
java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
So zu vermeiden, dass ich eine Kopie der Bitmap gemacht, so dass es wandelbar ist
Welche vermeiden das Problem, aber es verursacht manchmal OutOfMemoryExceptions, wissen Sie keine besseren Möglichkeiten zu erreichen, was ich will?
Kopieren innerhalb Speicher für mich funktioniert nicht, wenn es Originalbild ist, ich einen Weg gefunden MappedByteBuffer mit, ich habe es hier gebloggt: http: // sudarnimalan. blogspot.com/2011/09/android-convert-immutable-bitmap-into.html –