2010-04-26 21 views
17

Mi problema es el siguiente: He almacenado algunas imágenes en la base de datos sqlite, usando el formato blob, que parece funcionar bien. ahora quiero sacar mis fotos de la base de datos y ponerlas nuevamente en las imágenes ... para complicar el asunto, su formato es variable (png, jpg, tal vez otra cosa, no estoy seguro) ¿Hay alguna manera de hacerlo? en Android?byte [] a la imagen android

gracias

Respuesta

47

Uso BitmapFactory.decodeByteArray() método:

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

Mira this hilo también.

+0

eso es exactamente lo que hice, pero estaba usando dibujable, así que agregué un molde, pero no creo que lo necesite. Gracias por la ayuda chicos. gracias por la explicación detallada aquí – Sephy

+2

sin embargo, estoy obteniendo un buen "retorno nulo" de la herramienta BitmapFactory ... – Sephy

+0

método decodeByteArray devuelve nulo si la imagen no pudo decodificarse; revisa tu código que almacena en db. – systempuntoout

2

Prefiero convertir la matriz de bytes a Drawable directamente. Es el mejor formato para usar en Android. Los mapas de bits generaron filtraciones en el pasado.

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