google了一下,原因是:默認的ListView的背景是透明的,而ListView的背景是固定不變的,所以當我滾動滾動條的時候,會實時地去將當前每個Item的顯示內容跟背景進行混合運算,所以android系統爲了優化這個過程用,就使用了一個叫做android:cacheColorHint的屬性,在黑色主題下默認的顏色值是#191919,所以就出現了剛纔那樣的效果。
解決的辦法:如果你只要換背景顏色,就只需將android:cacheColorHint屬性設置成你想要的顏色就行了。如果需更換背景圖片,則需使用android:background="@drawable/bg"屬性,並把android:cacheColorHint設置成(#00000000)透明的就ok了。
或者:
直接上代碼了,目標:設置listview背景
- lv.setBackgroundResource(R.drawable.listback);
這樣設置可以,但是拖動列表就會發現列表又變成背景黑色的了說明這隻設置了列表的背景,但是列表自身的顏色沒有改變
這就要設置列表自身爲透明:
- lv.setCacheColorHint(0);
參數爲int型,如果在xml中設置這個屬性則可以使用一般的16進制顏色表示方法,即#00ff00ff之類
這樣就實現了列表的透明處理
api很豐富,要多多實踐啊
- lv.setAlwaysDrawnWithCacheEnabled(true);
這個用於設置拖動之後是否再次顯示背景,也就是說設爲true後,拖動listview,就不會顯示背景圖片了(默認顯示黑色),除非離開activity(tabactivity之間切換不算)
還是多多嘗試api吧 路還很長呢