listview item背景設置爲透明

在android開發中,listview的默認背景顏色是黑色的,所以在UI設計中,肯定會對它進行美化處理,尤其是在遊戲開發中。最近在做用戶聊天框的時候遇到一個這樣的問題,我把顯示用戶聊天記錄的listview背景設置成白色的,看起來沒有什麼問題,但是當我滾動滾動條的時候,有內容的listitem全部變成黑色的了,效果很不好。

     google了一下,原因是:默認的ListView的背景是透明的,而ListView的背景是固定不變的,所以當我滾動滾動條的時候,會實時地去將當前每個Item的顯示內容跟背景進行混合運算,所以android系統爲了優化這個過程用,就使用了一個叫做android:cacheColorHint的屬性,在黑色主題下默認的顏色值是#191919,所以就出現了剛纔那樣的效果。

     解決的辦法:如果你只要換背景顏色,就只需將android:cacheColorHint屬性設置成你想要的顏色就行了。如果需更換背景圖片,則需使用android:background="@drawable/bg"屬性,並把android:cacheColorHint設置成(#00000000)透明的就ok了。

或者:

直接上代碼了,目標:設置listview背景

Java代碼
  1. lv.setBackgroundResource(R.drawable.listback); 

這樣設置可以,但是拖動列表就會發現列表又變成背景黑色的了說明這隻設置了列表的背景,但是列表自身的顏色沒有改變
這就要設置列表自身爲透明:
Java代碼
  1. lv.setCacheColorHint(0); 

參數爲int型,如果在xml中設置這個屬性則可以使用一般的16進制顏色表示方法,即#00ff00ff之類
這樣就實現了列表的透明處理
api很豐富,要多多實踐啊

Java代碼
  1. lv.setAlwaysDrawnWithCacheEnabled(true); 

這個用於設置拖動之後是否再次顯示背景,也就是說設爲true後,拖動listview,就不會顯示背景圖片了(默認顯示黑色),除非離開activity(tabactivity之間切換不算)

還是多多嘗試api吧  路還很長呢

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