【问题标题】:Strange "Out of Memory" Error奇怪的“内存不足”错误
【发布时间】:2011-01-22 14:46:48
【问题描述】:

我的应用在某些 Android 设备上运行正常,但在某些设备上却出现内存不足错误。

这里是 LogCat 日志:

http://logcat.miui-dev.com/147001

这个Activity所做的是加载Bitmaps,并通过onDraw()显示这些Bitmaps。

什么会导致这个错误?

在做什么?

我只是将所有图像映射到一个方法图像中

_bitmapCache.put(R.drawable.gb2, BitmapFactory.decodeResource( getResources(), R.drawable.gb2));

当调用构造函数时,我调用该方法,而使用图像时,我只是使用

canvas.drawBitmap(_bitmapCache.get(R.drawable.level1c1), 0, 0, null);

抓取图片

【问题讨论】:

标签: android


【解决方案1】:

您似乎在请求 18 兆图像。您需要按比例缩小图像。每个应用程序只允许 16-24megs 的堆空间。我必须查看更多代码才能提出进一步的建议,但是 18 meg 的图像确实太大了,并且 ImageView 不能很好地自动缩放图像,所以你通常必须在显示之前进行缩放根据我的经验。

【讨论】:

  • 您正在将所有位图加载到可绘制对象中并将它们存储到代码中的哈希图中?
【解决方案2】:

您必须在 BitmapFactory 的 Options 中指定 inSampleSize,这将允许直接加载 Bitmap 的缩小版本。

【讨论】:

猜你喜欢
  • 2014-07-28
  • 2019-08-12
  • 1970-01-01
  • 2012-01-23
  • 2021-06-12
  • 2011-11-13
  • 2018-05-26
  • 1970-01-01
  • 2012-10-05
相关资源
最近更新 更多