我的应用在某些Android设备上正常运行,但在某些设备上却出现了内存不足错误。
这是LogCat日志:
http://logcat.miui-dev.com/147001
此活动的作用是加载位图,并通过onDraw()
显示这些位图。
什么会导致此错误?
在做什么?
我只是在方法图像中处理所有图像
_bitmapCache.put(R.drawable.gb2,BitmapFactory.decodeResource( getResources(),R.drawable.gb2));
当调用构造函数时,我调用该方法,而使用图像我只需使用
canvas.drawBitmap(_bitmapCache.get(R.drawable.level1c1),0,0,null);
抓取图片
答案 0 :(得分:1)
看起来你正在申请18兆的图像。您需要缩小图像。每个应用程序只允许16-24megs的堆空间。我必须看到更多的代码才能提出进一步的建议,但18兆的图像真的太大而且ImageView没有做到自动缩放图像的最佳工作,所以你通常必须在显示前进行缩放根据我的经验。
答案 1 :(得分:1)
您必须在BitmapFactory选项中指定一个inSampleSize,它将允许直接加载缩放版本的Bitmap。