2010-04-26 2 views
17

Mon problème est le suivant: J'ai stocké quelques images dans la base de données sqlite, en utilisant le format blob, qui semble fonctionner correctement. maintenant je veux sortir mes photos de la DB et les mettre ensuite dans les images ... pour compliquer le sujet, leur format est variable (png, jpg, peut-être autre chose, je ne suis pas sûr) Y a-t-il un moyen de le faire? dans android?octet [] à l'image android

merci

Répondre

47

Utilisez la méthode BitmapFactory.decodeByteArray():

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

Regardez this fil aussi.

+0

c'est exactement ce que j'ai fait, mais j'utilisais dessinable donc j'ai ajouté une distribution, mais je ne pense pas que j'en ai besoin. Merci pour l'aide les gars. merci pour l'explication détaillée ici – Sephy

+2

cependant, je reçois un bon "retour nul" de la BitmapFactory ... – Sephy

+0

La méthode decodeByteArray renvoie null si l'image n'a pas pu être décodée; Vérifiez votre code qui stockent à DB. – systempuntoout

2

Je préfère convertir le tableau d'octets en Drawable directement. C'est le meilleur format à utiliser sous Android. Les bitmaps ont généré des fuites dans le passé.

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