2011-02-05 45 views
0

我試圖從網絡加載圖像。我到目前爲止的代碼如下:Android BitmapDrawable構造函數未定義

 

Resources res = getResources(); 

InputStream is = (InputStream) new URL(url).getContent(); 

BitmapDrawable bitmapDrawable = new BitmapDrawable(res, is); 
// Error: The constructor BitmapDrawable(Resources, InputStream) is undefined 

最後一行產生錯誤,就好像構造函數不存在一樣。然而,文件說以下內容:


BitmapDrawable(InputStream爲) 此構造已被棄用。使用BitmapDrawable(Resources,java.io.InputStream)確保drawable已正確設置其目標密度。

BitmapDrawable(Resources res,InputStream is) 通過解碼給定輸入流中的位圖來創建drawable。


所以,我不知所措。要麼這應該工作,我有東西設置錯了,或者我需要找到另一種方式來從網絡加載圖像。有誰知道爲什麼這個代碼不會編譯或建議更好的方式來加載圖像(或兩者)?

回答

1

該構造函數是自API Level 5以來添加的,因此我猜你使用的是較舊的API級別,因此會出現該錯誤。嘗試使用Android 2.1(eclair)或更新的或不使用該構造函數。

我只是想這和它的工作:

InputStream is = (InputStream) new URL(url).getContent(); 
BitmapDrawable bitmapDrawable = new BitmapDrawable(is); 
+0

我認爲這是它。謝謝。我正在使用API​​ Level 4,因此我的應用程序可用於尚未升級的手機。我不確定「資源庫」對圖像的顯示方式有多重要。換句話說,「確保drawable已正確設置其目標密度」是什麼意思?如果足夠重要,我應該將其用於具有API Level 5或更高級別的手機,那麼Android程序員通常會如何處理這種情況? – user405821 2011-02-05 04:18:55