sto caricamento di una bitmap da una risorsa in questo modo:Caricamento di una risorsa a un bitmap mutabile
Bitmap mBackground = BitmapFactory.decodeResource(res,R.drawable.image);
Quello che voglio fare è fare alcune modifiche al bitmap prima che venga attratto dal disegno principale della mia disegnare il metodo (Come sembrerebbe uno spreco ripetere molti disegni nel mio ciclo principale quando non cambierà). Sto facendo le modifiche al bitmap con il seguente:
Canvas c = new Canvas(mBackground);
c.drawARGB(...); // etc
Così, naturalmente, ottengo un'eccezione
java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
Quindi, per evitare che ho fatto una copia della bitmap in modo che sia mutabile
Bitmap mBackground = BitmapFactory.decodeResource(res,R.drawable.image).copy(Bitmap.Config.ARGB_8888, true);
Quale evitare il problema, tuttavia a volte causa OutOfMemoryExceptions, conoscere i modi migliori per ottenere ciò che voglio?
copia all'interno della memoria non funziona per me se si tratta di immagine originale, ho trovato un modo utilizzando MappedByteBuffer, ho bloggato qui: http: // sudarnimalan. blogspot.com/2011/09/android-convert-immutable-bitmap-into.html –