带位图的9830416字节分配内存不足

时间:2013-03-11 09:35:36

标签: android bitmap

我从我的资源文件夹中获取了一些图片,我有这个例外:

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。

1 个答案:

答案 0 :(得分: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