AsyncTask を介して読み込まれた画像の小さなサムネイルがあり、画像の URL を imageView にスローするスクロールビューがあります。
それらは動的に追加され、その上に、クリックしたサムネイルの画像を保持するメインの imageView があります。
サムネイルに約10枚以上の画像が表示されるまで、すべてがうまく機能します...
サムネイルと同じ方法で mainImage の URL を読み込んでいるので、親指で画像をクリックすると、一番上に読み込まれます。
メソッド自体でビットマップをリサイクルしていますが、10 個を超える画像を読み込むとメモリが不足してクラッシュするようです (サムネイルは正常に読み込まれますが、クリックしてメイン画像を読み込むとクラッシュします)。
任意の助けをいただければ幸いです
これは、画像をロードするために使用しているコードです(サムネイル+メイン):
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}