我想加載,處理和存儲高分辨率圖像。儘管AndroidManifest.xml
中有largeHeap="true"
選項,但是當加載一些高分辨率圖像時,OOM異常頻繁發生。如何在Android上使用本機堆位圖
通過googling,我知道使用JNI可以將位圖加載到低於Android 3.0的本地堆上。如果是這樣,我怎麼能在本地堆的更高版本上使用本地堆?仍然是JNI?
我想加載,處理和存儲高分辨率圖像。儘管AndroidManifest.xml
中有largeHeap="true"
選項,但是當加載一些高分辨率圖像時,OOM異常頻繁發生。如何在Android上使用本機堆位圖
通過googling,我知道使用JNI可以將位圖加載到低於Android 3.0的本地堆上。如果是這樣,我怎麼能在本地堆的更高版本上使用本地堆?仍然是JNI?
在我看來,你應該解碼和處理大位圖的每個部分,而不是處理整個位圖。這將有助於避免OOM。 BitmapRegionDecoder可用於解碼圖像中的矩形區域。希望它可以幫助。
我不知道你所說的「過程」的意思,但如果你需要加載大量數據,然後放大以提取更多的細節
https://github.com/davemorrissey/subsampling-scale-image-view
感謝您可以使用下面的庫你的答案。如上所述,如果我使用「BitmapRegionDecoder」,則可以加載和處理高分辨率圖像。但是我不知道如何組裝每個零件並保存爲一個文件。如果你知道那樣,請讓我知道。 –