2009-08-18 11 views
7

In BlackBerry, è meglio usare la classe Bitmap o EncodedImage in termini di utilizzo e prestazioni della memoria? Ci sono suggerimenti specifici sull'uso di queste classi?È meglio usare Bitmap o EncodedImage in BlackBerry?

+2

Se la tua immagine sorgente è in realtà un png, gif, jpeg, o qualsiasi altra cosa, devi usare EncodedImage. Quando si imposta un campo Bitmap, è possibile crearlo con un bitmap o impostare un EncodedImage in seguito. Curiosamente, puoi impostarlo solo durante la creazione, dove è richiesto Bitmap. Bitmap utilizzerà più memoria (immagine completamente decodificata) a meno che EncodedImage mantenga anche una copia decodificata (nessuna idea - potrebbe dipendere anche dalla versione di JDE) ma ho notato che getBitmap() è spesso molto veloce. Probabilmente avresti bisogno di fare il tuo profilo per vedere nel tuo caso d'uso esatto ... – lilbyrdie

+1

Non dovrebbe essere una risposta invece di un commento? :) – KarolDepka

risposta

7

La mia osservazione è che meglio:

  • uso Bitmap e drawBitmap per gli elementi che necessitano di ridipingere spesso (immagine di sfondo ex nei giochi)

forse è perché bitmap è un formato RAW in modo che nessun prestazioni colpisci per decodificare EncodedImage prima di drawImage. Dall'altro lato, l'animazione GIF funziona perfettamente con EncodedImage.

  • uso EncodedImage per l'animazione o per una grande quantità di risorse (ex foto o elementi decore)

Quando si carica bitmap da GIF, PNG, JPG saranno aperti come EncodedImage in ogni caso, e se lo fai questo molte volte, può battere prestazioni (ex 50 secondi per caricare 14 png dalle risorse al bitmap su grassetto, dimensione media di 80 kb, sintonizzati fino a 2 secondi il caricamento in EncodedImages)

UPDATEstated by Fostah EncodedImage ha una funzione getBitmap() puoi usare per convertire qualsiasi EncodedImage in una Bitmap. Quindi puoi caricare in EncodedImage e poi usare come Bitmap

Problemi correlati