我有一個從Web服務中拉下數據並將其顯示在ListView中的片段。我有10個不同的選擇器可以用於行背景。循環後重復背景。Android ListView行背景導致OutOfMemory問題
我面臨的問題是設備(Galaxy Nexus!)無法處理顯示所有這些背景。當我通過setbackgroundResource設置背景時,操作系統不斷地調用GC來釋放內存,這使得ListView滾動非常不連貫。
所以我試圖緩存使用的Drawables。我看到了一個改進,但設備最終會拋出一個OutOfMemory異常,因爲有多少Drawable被緩存。舉個例子說明有多少緩存,我需要每個包含兩個drawable的所有10個選擇器,再加上第一個和最後一個,因爲它們是不同的。這是24內存中的drawables。
現在,我想這可能是我正在使用的圖像的大小,我需要縮小它們並按比例拉伸,但我不知道這是否可行。
有什麼建議嗎?我已經花了幾天的時間在這個不停歇的工作上,還沒有找到一個可行的/關閉的解決方案。
感謝
亞當
感謝您的答覆。事實上,它提供了大量的信息,其中一些可能有所幫助。我的第一個想法是調整圖像的大小,以便它們按照密度縮放,因爲我使用的原稿非常大。我會看到這是如何幫助的,接下來我將更有可能爲他們修補九個。最大的問題是,當允許系統處理它所有的itseld(通過在getView()中設置背景資源),ListView在快速滾動時變得太過分了,因爲它試圖一次加載很多drawable。 – Mimminito 2012-01-05 14:36:51