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

Android 带有位图的9830416字节分配内存不足,android,bitmap,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/"

我正在从我的资产文件夹中获取一些图像,我有一个例外:

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有此错误。

您可以尝试添加以下代码

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选项可减少内存消耗

你可以参考下面的链接


S3有一个xhdpi分辨率,由于Android的加载依赖于密度,这可能与此有关。另一方面,您似乎没有以加载图像的方式使用该功能。