android平板上的GridView視圖緩存優化

 最近在做android平板上的開發,其中涉及到高分辨率之下使用GridView的性能問題。在Android手機軟件開發中,如果在ListView或者GridView上使用大數量Item,很多人都會想到ViewHolder......沒錯,ViewHolder非常適合用在ListView或者每行小於4個Item的GridView。但是如果是高分辨率的設備(android平板甚至android電視),每行包含4個以上Item的話,即使用了ViewHolder也依然卡。

      如下圖,每行9個Item,而且每個Item的圖片都是從網絡動態下載的,這時就比較考驗GridView視圖的優化了。

      本文提出的優化方法是:在getView()構建一個View列表(List<View>),把最近構建的View存起來,回退時直接從View列表中讀取,而不是動態構建。使用這種方法有2個好處:

1.快速讀取過去的Item;

2.直接保存View而不是Bitmap,避免了ImageView.setImageBitmaps()帶來的延時。

當然壞處就是浪費內存,所以要設定一個上限,超過了就刪掉最老的Item。
先來看看這種方法與ViewHolder的性能對比:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章