我目前正在嘗試創建從Internet加載的圖片庫。Android - 動態圖片加載問題
我正在使用標準Gallery對象,使用自定義適配器和自定義ImageView。一切工作都很好,希望下載圖片。
我正在使用異步任務來做到這一點(我加載時顯示縮略圖)。
加載縮略圖效果非常好,但對於「大」圖像(每個大約50k)並不真實。
我使用這個加載圖片:
private class DownloadImageTask extends AsyncTask<String,Void,Drawable>{
@Override
protected Drawable doInBackground(String... arg0) {
URL url;
InputStream is;
Drawable d=null;
try {
url = new URL(arg0[0]);
is = (InputStream) url.getContent();
d = Drawable.createFromStream(is, "src");
return d;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(Drawable result) {
setImage(result);
}
}
問題是,相當隨意,但出來的10 8倍左右,我在我的日誌「10-25得到了以下信息14:58:18.764:DEBUG/skia(11294):--- decoder-> decode返回false「,然後我的drawable爲null。
我想說我的代碼存在問題,但爲什麼它有時會工作?或不?
我試圖把WebViews放入我的畫廊,只加載圖片的URL,它的工作非常好,並且快速地下載圖片,但是顯示效果相當混亂(速度較慢而且沒有響應,圖片不是以屏幕爲中心......)。
我該怎麼辦?
我不明白爲什麼有時我的輸入流不起作用。只是有時。如果嘗試足夠努力(就像循環一樣),經過幾次嘗試後,它總是可以工作的,但這確實是一個非常難看的解決方案。
有沒有辦法用webviews下載圖片並獲取它們?我嘗試過類似的東西(從webview獲取getCache()或capturePicture()),但它沒有顯示任何東西...
任何想法?有任何想法嗎?
非常感謝!
編輯: 呃..它每次都在工作,當我意識到inputStream的副本...但是爲什麼?