奇怪的“内存不足”错误

时间:2011-01-20 19:00:34

标签: android

我的应用在某些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);

抓取图片

2 个答案:

答案 0 :(得分:1)

看起来你正在申请18兆的图像。您需要缩小图像。每个应用程序只允许16-24megs的堆空间。我必须看到更多的代码才能提出进一步的建议,但18兆的图像真的太大而且ImageView没有做到自动缩放图像的最佳工作,所以你通常必须在显示前进行缩放根据我的经验。

答案 1 :(得分:1)

您必须在BitmapFactory选项中指定一个inSampleSize,它将允许直接加载缩放版本的Bitmap。