2011-01-27 53 views
3

我正在填充一個相對複雜的列表項的列表,其中包括幾個textviews,一個按鈕和一個ImageView。與每個項目相關的圖像都是唯一的,但是已經從互聯網上預取,所以我不需要等待HTTP請求來下載圖像。預取的圖像是否應該被延遲加載到ListView中?

不過,我想知道是否延遲加載內存中的圖像仍然是謹慎的,以便儘可能快地顯示列表。 Android在管理應用程序列表中具有此行爲。它使用通用數據填充列表,並在更好的數據可用時更正每個項目。

將多個圖像從內存載入列表視圖(特別是考慮快速滾動大列表(300多項))時,性能問題有多大?我需要考慮哪些折衷?

回答

0

不應該有必要自己做任何懶惰加載。 A ListView內置了延遲加載。它只會加載頁面上當前可見的列表視圖項目。它在滾動時加載列表中後面的項目。

一般來說,如果您實際遇到性能問題,我只會嘗試優化這一點。由於它談論的Designing for Performance

有編寫 高效的代碼的兩個基本規則:

  • 不要做,你不需要做 工作。
  • 不要分配內存,如果你可以避免它, 。

試圖做加載這些圖片你自己的預優化,沒有任何基準測試,以表明你有一個真正的問題將打破這兩方面的規則。

+0

我實際上找到了一個來自框架團隊成員的例子,他有一個解決方案。如果圖像在緩存中,他立即加載它們,但是如果ListView在扔掉,則不會。然後他只是加載一個默認圖像,直到scrollview停止,然後懶加載圖像。 – CodeFusionMobile 2011-03-11 14:06:00