5

アセットフォルダーから画像を取得していますが、次の例外があります。

03-11 10:18:28.019: E/dalvikvm-heap(4052): Out of memory on a 9830416-byte allocation.

ここにこのエラーがあります:

//stream to get photo
InputStream bitmap=null;                        
bitmap=getResources().getAssets().open("ProduitsMini/"+productList.get(rang).getImg_mini());
Bitmap bit=BitmapFactory.decodeStream(bitmap);

// get drawable image
Drawable mDrawable = new BitmapDrawable(getResources(),bit);

このエラーは各デバイスではなく、Galaxy S3 でのみ発生するため、奇妙です。

4

1 に答える 1

9

以下のコードを追加してみてください

InputStream bitmap=null; 
bitmap=getResources().getAssets().open("ProduitsMini/"+productList.get(rang).getImg_mini());

BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap preview_bitmap = BitmapFactory.decodeStream(bitmap,null,options);

この inSampleSize オプションは、メモリ消費を削減します。

以下のリンクで参照できます

https://stackoverflow.com/a/823966/1441666

于 2013-03-11T09:41:10.953 に答える