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 回答