2011-06-29 2 views
1

画像のリストを表示するためにURLの配列から画像をダウンロードする際に問題に直面しています。 イメージURLを1つの配列に格納しています。この配列を反復処理するときに、一度に1つのURLを渡してビットマップをダウンロードして返すメソッドを呼び出しています。しかし、この繰り返しを完了した後、私はいくつかの画像が欠落しています。つまり、反復処理がいくつかの画像をスキップしていることがわかりました。アンドロイドのURLの配列から画像の配列をダウンロードする際に問題が発生する

いずれにしても私を助けることができますか? 私はハンドラとは別のスレッドで実行している私のコードをここに添付しています。

Bitmap[] data = new Bitmap[urls.size()]; 
for (int i = 0; i < urls.size(); i++) { 
Bitmap temp=getBitmapFromURL(urls.get(i)); 
if(temp!=null){ 
    data[i] = temp; 
       } 
} 
public static Bitmap getBitmapFromURL(String urlString) { 
     try { 
     URL url = new URL(urlString); 
     InputStream input = url.openConnection().getInputStream(); 

      BitmapFactory.Options options = new BitmapFactory.Options(); 

        options.inSampleSize = 8; 


       myBitmap = BitmapFactory.decodeStream(input, null, options); 
      return myBitmap; 
     }catch (Exception e) { 
      e.printStackTrace(); 
     } 

} 

答えて

0

リストビューの画像表示にはLasylistを使用できます。

ソースはここhttp://open-pim.com/tmp/LazyList.zip

+0

お返事ありがとうございます。私がリストビューで直接画像をダウンロードして表示したい場合は、遅延読み込みが機能するはずです。私の意図はバックエンドから画像をダウンロードしてビットマップ配列に保存してから、すべての画像のダウンロードが完了した後に表示したいということです – sathish

1

あなたの問題を解決する画像の遅延読み込み可能です。次のリンクにアクセスしてください:Lazy load of images in ListView

+0

お返事ありがとうございます。私がリストビューで直接画像をダウンロードして表示したい場合は、遅延読み込みが機能するはずです。私の意図はバックエンドから画像をダウンロードしてビットマップ配列に保存してから、すべての画像のダウンロードが完了した後に表示することです。 – sathish

関連する問題