Caricamento di una risorsa in una bitmap mutevole

Sto caricando una bitmap da una risorsa così:

Bitmap mBackground = BitmapFactory.decodeResource(res,R.drawable.image); 

Quello che voglio fare è apportre alcune modifiche alla bitmap prima che sia disegnata alla canvas principale nel mio metodo di disegno (poiché sembrerebbe spreco ripetere un sacco di disegno nel mio ciclo principale quando non cambierà). Effettui le modifiche alla bitmap con le seguenti operazioni:

  • StopSelf non interrompe il mio servizio
  • Nessun errore ancora che Android Studio dice "non sono stati trovati test"
  • Imbottitura del logo Actionbar sinistro
  • Come fornire la navigazione con il button Home della barra degli strumenti sulla barra degli strumenti v7
  • Sviluppare un'applicazione per smartphone Android - su quali dispositivi suggerirai di controllare l'applicazione?
  • Posiziona ImageView sopra Button android
  •  Canvas c = new Canvas(mBackground); c.drawARGB(...); // etc 

    Così naturalmente ottengo un'exception

     java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor 

    Quindi per evitare di fare una copia del bitmap in modo che sia mutevole

     Bitmap mBackground = BitmapFactory.decodeResource(res,R.drawable.image).copy(Bitmap.Config.ARGB_8888, true); 

    Quello che evita il problema comunque talvolta provoca OutOfMemoryExceptions, conosce i modi migliori per raggiungere ciò che voglio?

  • Android - ottiene l'image del profilo di facebook
  • Android ListView setOnScrollListener
  • Problema con getSupportFragmentManager ()
  • Attività di Facebook non caricando correttamente in facebook-sdk 4.4.0
  • Java MimetypesFileTypeMap restituisce sempre l'applicazione / octet-stream sull'emulatore Android
  • Sviluppo mobile - Native VS Cross Platform VS JavaScript
  • 4 Solutions collect form web for “Caricamento di una risorsa in una bitmap mutevole”

    Ci sono diversi modi per creare una copia di esso. Questo thread potrebbe aiutare: http://www.anddev.org/how_to_modify_the_image_file-t513.html

    Utilizza decodeResource(Resources res, int id, BitmapFactory.Options opts) e specifica inMutable nelle opzioni.

    http://developer.android.com/reference/android/graphics/BitmapFactory.html

    È meglio utilizzare RapidDecoder .

     import rapid.decoder.BitmapDecoder; Bitmap mBackground = BitmapDecoder.from(res, R.drawable.image) .mutable().decode(); 

    Lavora per livello API 8.

    nel caso in cui devi gestire tutti i livelli di API, controlla questo post:

    https://stackoverflow.com/a/16314940/878126

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.