我在這裏有一個問題。BitmapFactory.decodeStream(輸入)總是返回null
我有一些圖像的URL列表中的
agenda.get(i).getPicture() // always return a good image url
在一個線程我這樣做:
for (int i = 0; i < agenda.size(); i ++)
{
Log.e("TEST", " = " +agenda.get(i).getPicture());
Bitmap newBitmap = getBitmapFromURL(agenda.get(i).getPicture()); // getPicture return the url
imagelist.add(i,newBitmap);
}
而且getBitmapFromURL返回空的原因:
BitmapFactory.decodeStream(input)
:
private Bitmap getBitmapFromURL(final String src) {
Runnable r=new Runnable()
{
public void run() {
try {
URL url = new URL(src);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
myBitmap = BitmapFactory.decodeStream(input);
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
};
return myBitmap;
}
現在,如果有人有一個想法PLZ! 謝謝
編輯!
這有可能是
InputStream input = connection.getInputStream();
不能太...我不知道爲什麼
必須調用r.run(),或創建一個線程,這個Runnable接口,並運行線程 – Gerhard
您還沒有實際運行,您已經創建了'Runnable'。你還沒有定義變量'myBitmap'(它必須是'final')。另外,即使你在你的runnable上調用了'run()',它也只是針對當前線程運行它,並且你不會得到任何異步行爲。 –
我試過了,結果保持不變 – F4Ke