2012-02-04 11 views
5

Konwertuję bitmapę na Drawable za pomocą poniższego kodu.Konwertowanie bitmap na Drawable show nothing

MemoryCache memoryCache = new MemoryCache(); 
Bitmap bitmap = memoryCache.get(thumbnail); 
Drawable drawable = (Drawable)new BitmapDrawable(bitmap); 

MemoryCache Użyłem wynosi od LazyList Projektu i działa dobrze, gdy używam bitmapę ale kiedy przekonwertować go do rozciągliwej to pokazuje nic w miejscu obrazu.

proszę o pomoc

+0

spróbować tej rozciągliwej rozciągliwej = new BitmapDrawable (bitmapy); –

+0

Spróbuj użyć hierarchyview do debugowania. –

Odpowiedz

16

zmienić tę linię:

Drawable drawable = (Drawable)new BitmapDrawable(bitmap); 

Do:

Drawable drawable = new BitmapDrawable(getResources(), bitmap); 

Zauważmy, że konstruktor BitmapDrawable(Bitmap bitmap) została zaniechana (source) i stosując powyższe wezwanie podobno gwarantuje robi poprawnie ustawiony z właściwą gęstością docelową.

+0

To jest świetna informacja. Bez określenia "getResources()" jako pierwszego argumentu, doświadczałem niespójnego rozmiaru obrazu w różnych gęstościach ekranu. Dziękuję Ci! – suomi35

0

Problem Znaleziony

Faktycznie problem był z

MemoryCache memoryCache = new MemoryCache(); 
Bitmap bitmap = memoryCache.get(thumbnail); 
3

Spróbuj użyć następującego

Drawable d = new BitmapDrawable(bitmap);