2010-04-26 20 views
17

Il mio problema è il seguente: Ho conservato un paio di foto nel database SQLite, utilizzando il formato blob, che sembra funzionare bene. ora voglio ottenere le mie foto fuori della DB e mettere poi di nuovo in immagini ... a complicare la questione, il loro formato non è variabile (png, jpg, forse qualcos'altro, non sono sicuro) è un modo di fare così in androide?byte [] per immagine Android

grazie

risposta

47

Uso BitmapFactory.decodeByteArray() metodo:

byte[] blob=c.getBlob("yourcolumnname"); 
Bitmap bmp=BitmapFactory.decodeByteArray(blob,0,blob.length); 
ImageView image=new ImageView(this); 
image.setImageBitmap(bmp); 

Guarda this filo troppo.

+0

questo è esattamente quello che ho fatto, ma stavo usando drawable così ho aggiunto un cast, ma non credo che ne ho bisogno. Grazie per l'aiuto ragazzi. grazie per la spiegazione dettagliata qui – Sephy

+2

tuttavia, sto ottenendo un bel "return null" dal BitmapFactory ... – Sephy

+0

decodeByteArray metodo restituisce null se l'immagine non può essere decodificata; controlla il tuo codice che memorizza in db. – systempuntoout

2

preferisco convertire la matrice di byte drawable direttamente. È il miglior formato da utilizzare in Android. Bitmap ha generato perdite nel passato.

Drawable d = Drawable.createFromStream(new ByteArrayInputStream(ARRAY_BYTES), null);