2012-02-04 44 views
5

Tôi đang chuyển đổi Bitmap thành Drawable bằng cách sử dụng mã sau.Chuyển đổi Bitmap thành Drawable hiển thị không có gì

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

Các MemoryCache Tôi đã sử dụng là từ LazyList dự án và nó hoạt động tốt khi tôi sử dụng bitmap nhưng khi tôi chuyển nó sang drawable sau đó nó cho thấy không có gì thay cho hình ảnh.

Xin vui lòng giúp

+0

thử drawable drawable = new BitmapDrawable (bitmap) này; –

+0

Hãy thử sử dụng tính năng xem phân cấp để gỡ lỗi. –

Trả lời

16

Thay đổi dòng này:

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

Để:

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

Lưu ý rằng các nhà xây dựng BitmapDrawable(Bitmap bitmap) đã bị phản đối (source) và sử dụng các cuộc gọi trên rõ ràng đảm bảo nó được đặt đúng với mật độ đích phù hợp.

+0

Đây là một thông tin tuyệt vời. Không chỉ định 'getResources()' làm đối số đầu tiên, tôi đã trải qua việc định kích thước hình ảnh không nhất quán giữa các mật độ màn hình khác nhau. Cảm ơn bạn! – suomi35

0

Vấn đề Tìm thấy

Trên thực tế vấn đề là với

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

Hãy thử sử dụng sau

Drawable d = new BitmapDrawable(bitmap); 
Các vấn đề liên quan