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

the*_*ouk 5 android bitmap

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

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

我在这里有这个错误:

//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);
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我在每台设备上都没有这个错误,只有Galaxy S3.

Nir*_*ali 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);
Run Code Online (Sandbox Code Playgroud)

此inSampleSize选项可减少内存消耗.

您可以参考以下链接

/sf/answers/57677651/