OutOfMemoryError

这是在堆上请求大量内存时发生的运行时错误。将 Bitmap 加载到 ImageView 时很常见。

你有一些选择:

  1. 使用大型应用程序堆

largeHeap 选项添加到 AndroidManifest.xml 中的 application 标记。这将为你的应用提供更多内存,但可能无法解决根本问题。

<application largeHeap="true" ... >
  1. 回收你的位图

加载位图后,请务必回收它并释放内存:

    if (bitmap != null && !bitmap.isRecycled())
       bitmap.recycle();
  1. 将采样的位图加载到内存中

通过使用 BitmapOptions 和 inSampleSize 对缩小的大小进行采样,避免一次将整个位图加载到内存中。

例如,请参阅 Android 文档