OutOfMemoryError

這是在堆上請求大量記憶體時發生的執行時錯誤。將 Bitmap 載入到 ImageView 時很常見。

你有一些選擇:

  1. 使用大型應用程式堆

largeHeap 選項新增到 AndroidManifest.xml 中的 application 標記。這將為你的應用提供更多記憶體,但可能無法解決根本問題。

<application largeHeap="true" ... >
  1. 回收你的點陣圖

載入點陣圖後,請務必回收它並釋放記憶體:

    if (bitmap != null && !bitmap.isRecycled())
       bitmap.recycle();
  1. 將取樣的點陣圖載入到記憶體中

通過使用 BitmapOptions 和 inSampleSize 對縮小的大小進行取樣,避免一次將整個點陣圖載入到記憶體中。

例如,請參閱 Android 文件