0

新聞の画像(epaper)をギャラリービューで表示する必要があるため、新聞アプリを作成しています...約100枚の画像をダウンロードする必要があります。そのためにasyncTaskを使用し、ダウンロード画像ごとに新しいAsyncTaskオブジェクトを作成します。画像をダウンロードしてギャラリーに設定しようとすると、「VMでは割り当てができません...バイト」というエラーが発生し、クラッシュします。アプリ。

new AsyncTask<String, Void, Bitmap> () {

                @Override
                protected Bitmap doInBackground(String... params) {
                    HttpGet httpRequest;
                    try {
                        httpRequest = new HttpGet(new URL(params[0]).toURI());
                        HttpClient httpClient = new DefaultHttpClient();
                        HttpResponse response = (HttpResponse) httpClient.execute(httpRequest);
                        HttpEntity entity = response.getEntity();
                        BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity); 
                        InputStream is = bufHttpEntity.getContent();
                        return BitmapFactory.decodeStream(is);

                    } catch (MalformedURLException e) {
                        e.printStackTrace();
                    } catch (URISyntaxException e) {
                        e.printStackTrace();
                    } catch (ClientProtocolException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }/* catch (Error e) {
                        e.printStackTrace();
                    }*/
                    return null;
                }

                @Override
                protected void onPostExecute(Bitmap result) {
                    if(result != null) {
                          img.setImageBitmap(ePaperInfo.getImgJpg1());
                        notifyDataSetChanged();
                    }
                }


            }

logcatにエラーを表示します。 ここに画像の説明を入力してください

私を助けてください

前もって感謝します。

4

2 に答える 2

1

メモリ上に同時に 100 個のビットマップを保持するべきではありません。必要なビットマップのみをダウンロードしてから、新しいビットマップをダウンロードする前に recycle() を呼び出す必要があります。

あなたが望むことを行うための好ましい方法については、この例を見てください: ImageDownloader

于 2012-06-11T11:22:38.093 に答える
0

私が使用する画像読み込みの別のオプションはPrimeです。すべてのプロジェクトで使用しており、非常にシンプルで効率的です。

于 2012-06-11T12:08:31.290 に答える