2010-04-26 9 views
17

Mój problem jest następujący: Mam zapisane kilka zdjęć w bazie danych sqlite, używając formatu blob, który wydaje się działać dobrze. teraz chcę pobrać moje zdjęcia z DB i umieścić je z powrotem w obrazach ... aby skomplikować sprawę, ich format jest zmienny (png, jpg, może coś jeszcze, nie jestem pewien) Czy jest sposób na zrobienie tego w Androidzie?bajt [] do obrazu Android

dziękuję

Odpowiedz

47

Zastosowanie BitmapFactory.decodeByteArray() metoda:

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

Spójrz na this wątek zbyt.

+0

to dokładnie to, co zrobiłem, ale używałam rysowania, więc dodałem obsadę, ale nie potrzebuję tego. dzięki za pomoc. dziękuję za szczegółowe wyjaśnienie tutaj – Sephy

+2

jednak otrzymuję ładny "return null" z metody BitmapFactory ... – Sephy

+0

metoda decodeByteArray zwróci wartość null, jeśli obraz nie może zostać zdekodowany; sprawdź kod przechowujący do db. – systempuntoout

2

Wolę konwertować tablicę bajtów na Drawable bezpośrednio. Jest to najlepszy format do użycia w systemie Android. Bitmapy generowały przecieki w przeszłości.

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