2013-02-21 104 views
1

我正在使用平板電腦應用。我試圖使用Layout.setBackgroundResource(ResId)作爲背景設置高分辨率(2223x3553)圖像。在Nexus 7上測試時,應用程序崩潰了,我不會粘貼堆棧跟蹤,因爲在LogCat中存在大約300條紅線的8或9個例外,我花了一段時間才弄清楚原因。當我注意到OutOfMemoryException後,我知道了,使用1280x800圖像的應用程序運行良好,但一些質量損失發生,因爲這些圖像被設計爲高分辨率。android-大圖像導致應用崩潰

問題:如何處理Android中的高分辨率圖像以防止這樣的崩潰?所有圖片均爲本地和存儲在drawable文件夾

+0

僅供參考此高度和寬度的位圖將需要約30兆字節的Java堆。 – Blackbelt 2013-02-21 09:35:37

+0

@ Maver1ck檢查Pragnani答案... – 2013-02-21 09:40:50

+0

@ Maver1ck你有沒有試過教程,你需要計算樣本大小和基於你需要加載圖像請檢查教程... – Pragnani 2013-02-21 09:42:28

回答

2

你必須使用,我在這樣一個使用案例已經使用相同的庫,

This project將幫助你在你還。因爲您需要在顯示圖像時壓縮圖像,並且如果最終需要使用延遲加載功能。

2

圖像大小在android開發中受到限制。您不能使用比規定圖像更大的圖像。有關於如何爲您的應用程序選擇圖像的指導原則。這是指南的link