0

インターネットから画像をダウンロードするのに問題があります。問題は、画像が互いにダウンロードされていることです。プログラムがandroid<=2.2で実行されているときに問題が発生します。ダウンロードは解像度320x200の約50枚の画像です

コードフラグメント:

public class DownloadOfferImages extends AsyncTask<List<ImageOfferData>, Bitmap, Void> {

    private InputStream inputStream;
    private BufferedInputStream buffer;

    @Override
    protected Void doInBackground(List<ImageOfferData>... offer) {
        for(int i = 0 ; !isInteruppted() && i < offer[0].size() ; i++) {
            if(offer[0].get(i).getImage() == null)
                downloadImage(offer[0].get(i));
        }
        return null;
    }

    private void downloadImage(ImageOfferData offerData) {
        try {
            download(offerData);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (OutOfMemoryError e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                closeStreams();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    private void download(ImageOfferData offerData) throws MalformedURLException, OutOfMemoryError, IOException {
        URL imageUrl = new URL(offerData.getImageURL());
        URLConnection connection = imageUrl.openConnection();
        inputStream = connection.getInputStream();
        buffer = new BufferedInputStream(inputStream);
        Bitmap image = BitmapFactory.decodeStream(buffer);
        buffer.close();
        offerData.setImage(image);
        publishProgress(image);
    }

    /*
     * [rest of code]
     * 
     * 
     * */

}
4

1 に答える 1

1

すばらしい非同期イメージローダーライブラリを強くお勧めします。

READMEに含まれる例。githubで見つけてください:

https://github.com/nostra13/Android-Universal-Image-Loader

于 2012-11-19T10:03:45.057 に答える