2012-10-11 71 views
0

我正在開發一個圖像處理應用程序,其中我有一個包含多個圖像的相冊文件夾。OutOfMemory錯誤Android

也可以有多個專輯在項目中。 在啓動應用程序時,會有一個相冊列表。顯示包含在該相冊中的圖像時選擇相冊內容。

如果我們選擇的圖像超出了所選圖像的繪製範圍(即,您可以在圖像上繪製線條或形狀),那麼將啓動新的活動。 您也可以使用相機或圖庫將圖像添加到相冊。 現在我面臨的問題是,該應用程序工作正常。但我無法處理OutOfMemory錯誤。 我已經嘗試了很多東西。如

  1. 調整圖像大小。
  2. 破壞活動。
  3. 對數據庫幫助程序類使用應用程序上下文。
+0

檢查我的答案在這個問題http://stackoverflow.com/questions/5125779/how-to-compress-image-for-imageview-in-android –

+1

http://stackoverflow.com/questions/12716574/bitmap -recycle-與啓用largeheap-/ 12819091#12819091 –

回答

0

你必須選擇,在Android中使用的圖像工作: - 使用Java和SDK - 使用本機代碼和NDK

如果你只想使用SDK嘗試使用inSampleSize採樣資源的圖像。除了採樣圖像之外,確保您在使用後正確回收圖像資源,並且您的應用程序中沒有內存泄漏。您可以使用MAT來發現內存泄漏。

或者您可以使用NDK編寫代碼。當你使用本地代碼時,你創建的對象在本地堆中與Java相對。

0

OOM(OutOfMemory)問題始終是由於有關位圖對象的不當處理造成的。所以你所嘗試過的(調整大小,銷燬活動,等等)不能解決OOM問題。

更好的解決OOM的方法是根據設備的分辨率密度將圖像加載到內存中。 Goole Android培訓課程有一章講述如何高效地加載大型圖像。在這裏可以稱作

https://developer.android.com/training/displaying-bitmaps/load-bitmap.html

希望這會幫助你!