ListView setCacheColorHint 性能影響

在網上看到不少文章都寫經過將ListView的setCacheColorHint設爲透明來解決滾動時背景變黑的問題,實際上setCacheColorHint設置的是setScrollingCacheEnabled(true)後產生的繪圖緩存滾動時顯示的顏色,由於setScrollingCacheEnabled默認是打開的因此會出現滾動變色的問題,當設置setScrollingCacheEnabled(false)後setCacheColorHint也就隨之失效也就沒有了滾動時變色的問題,設置setCacheColorHint(0)則爲透明也就是沒有顏色,但測試中發如今某些機器中若是使用setCacheColorHint(0)當滾動時會產生大量的回收日誌以下: 緩存

D/dalvikvm(5140): GC_EXTERNAL_ALLOC freed <1K, 46% free 3338K/6087K, external 1377K/1622K, paused 28ms

D/dalvikvm(5140): GC_EXTERNAL_ALLOC freed <1K, 46% free 3338K/6087K, external 1377K/1622K, paused 28ms 測試

從日誌看每次只釋放了小於1k的內存,每次暫停了28ms左右,顯然有很大的影響,不設置爲透明時滾動都正常,應該是ROM的問題,所以使用ListView卡時須要注意. spa

相關文章
相關標籤/搜索