2011年4月20日 星期三

ListView cacheColorHint

這是一個簡單的 ListView 描述,背景不是單純的顏色…
而是選用一張圖片作背景,如此執行起來似乎沒什麼問題…



<ListView android:id="@+id/MyLV"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@drawable/bg_list" />


但在拉動 ListView 的過程中,ListItem 的顏色會變成色塊,而非透明的背景…
原因是系統為了效率而在 ListView 捲動時先填上色塊,減少計算背景圖的資源…
至於色塊是什麼顏色,就是使用 cacheColorHint 來指定顏色…

當然若有必要,我們還是可以讓 ListItem 在滑動時正確的顯示背景圖片…
方法就是將 cacheColorHint 設為 #00000000
如此將會被識別為透明色,但是得付出的就是計算背景圖的額外資源嘍…


<ListView android:id="@+id/MyLV"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background="@drawable/bg_list"
 android:cacheColorHint="#00000000" />

沒有留言:

張貼留言