OutOfMemoryError
這是在堆上請求大量記憶體時發生的執行時錯誤。將 Bitmap 載入到 ImageView 時很常見。
你有一些選擇:
- 使用大型應用程式堆
將 largeHeap
選項新增到 AndroidManifest.xml 中的 application 標記。這將為你的應用提供更多記憶體,但可能無法解決根本問題。
<application largeHeap="true" ... >
- 回收你的點陣圖
載入點陣圖後,請務必回收它並釋放記憶體:
if (bitmap != null && !bitmap.isRecycled())
bitmap.recycle();
- 將取樣的點陣圖載入到記憶體中
通過使用 BitmapOptions 和 inSampleSize 對縮小的大小進行取樣,避免一次將整個點陣圖載入到記憶體中。
例如,請參閱 Android 文件