2011-06-24 51 views
2

我一直在尋找一種方法來做一個異步下載多個圖像並將它們存儲在一個數組中。我在列表中使用了一些很棒的例子,但我希望能夠有一種方式來下載並在以後使用它們。 感謝您的閱讀。任何建議將不勝感激。異步圖像下載並存儲在一個ImageView數組

回答

5

嘗試是這樣的:

public void onClick(View v) { 
    new DownloadImageTask().execute("http://example.com/image.png"); 
} 

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { 
    protected Bitmap doInBackground(String... urls) { 
     return loadImageFromNetwork(urls[0]); 
    } 

    protected void onPostExecute(Bitmap result) { 
     //Do something with bitmap eg: 
     mImageView.setImageBitmap(result); 
    } 
} 

private Bitmap loadImageFromNetwork(String url){ 
     try { 
      Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageURL).getContent()); 
      return bitmap; 
     } catch (Exception e) { 
      e.printStackTrace(); 
    } 
} 
+0

感謝您的及時響應,但我似乎得到一個錯誤: 保護位圖doInBackground(字符串...網址){ return loadImageFromNetwork(urls [0]); } 這是抱怨return語句:「return loadImageFromNetwork(urls [0]);」 –

+0

因爲後來在你設置的代碼中:private void loadImageFromNetwork(String url) –

+0

對不起,我編輯了代碼來糾正它,現在loadImageFromNetwork返回一個位圖!哎呀! – Kenny

0

您需要更改 新的URL(IMAGEURL) - >新的網址(URL)

,並把返回類型,根據「e.printStackTrace() ;」 (return null;)

我檢查了它的工作。