显示质量图像 - 位图大小超过VM预算错误

时间:2011-01-27 20:01:43

标签: android image bitmap out-of-memory

我需要创建一个库类型的应用程序。我需要在哪里显示许多图像并给出缩放和滑动效果 现在我正在使用android.widget.Gallery并将图片设置为我的图片库imageviewgetview)的Adapter中的extends BaseAdapter。我使用位图设置图像,该位图由以下代码

设置
Bitmap  mBitmap = BitmapFactory.decodeFile(imagePathArray.get(position));
imageview.setImageBitmap(mBitmap);

它首先工作正常,但在移动到第三或第四个图像后,应用程序崩溃并出现以下错误

  ERROR/AndroidRuntime(12184):  FATAL EXCEPTION: main
  ERROR/AndroidRuntime(12184):  java.lang.OutOfMemoryError: bitmap size exceeds VM budget 

在decodeFile语句中。

当我搜索bitmap size exceeds VM budget时,我得到了很多像android-strange-out-of-memory-issue这样的解决方案。但所有解决方案都在降低图像质量 以高质量和低内存显示图像的最佳方法是什么?这不会导致bitmap size exceeds VM budget
有什么建议吗? 谢谢

1 个答案:

答案 0 :(得分:2)

您唯一的解决方案是以较小的尺寸加载位图(BitmapFactory.Options允许您在加载时重新采样位图),或尝试回收您可能已加载的其他大型位图,而您不再需要