国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android程序美化之自定義ListView背景的方法

2019-12-12 06:09:13
字體:
來源:轉載
供稿:網友

本文實例講述了Android程序美化之自定義ListView背景的方法。分享給大家供大家參考,具體如下:

在Android中,ListView是最常用的一個控件,在做UI設計的時候,很多人希望能夠改變一下它的背景,使他能夠符合整體的UI設計,改變背景背很簡單只需要準備一張圖片然后指定屬性 android:background="@drawable/bg",不過不要高興地太早,當你這么做以后,發現背景是變了,但是當你拖動,或者點擊list空白位置的時候發現ListItem都變成黑色的了,破壞了整體效果。

這是為什么呢?

這個要從Listview的效果說起,默認的ListItem背景是透明的,而ListView的背景是固定不變的,所以在滾動條滾動的過程中如果實時地去將當前每個Item的顯示內容跟背景進行混合運算,所以android系統為了優化這個過程用,就使用了一個叫做android:cacheColorHint的屬性,在黑色主題下默認的顏色值是#191919,所以就出現了剛才的畫面,有一半是黑色的.

那怎么辦呢?

如果你只是換背景的顏色的話,可以直接指定android:cacheColorHint為你所要的顏色,如果你是用圖片做背景的話,那也只要將android:cacheColorHint指定為透明(#00000000)就可以了,當然為了美化是要犧牲一些效率的。最后就不回出現上面所說的你不想要的結果了!

自定義ListView行間的分割線

在Android平臺中系統控件提供了靈活的自定義選項,所有基于ListView或者說AbsListView實現的widget控件均可以通過下面的方法設置行間距的分割線,分割線可以自定義顏色、或圖片。

在ListView中我們使用屬性   android:divider="#FF0000" 定義分隔符為紅色,當然這里值可以指向一個drawable圖片對象,如果使用了圖片可能高度大于系統默認的像素,可以自己設置高度比如6個像素   android:dividerHeight="6px" ,Android開發網提示當然在Java中ListView也有相關方法可以設置。

1)點擊Item時無背景顏色變化

在xml文件中的ListView控件中加入如下屬性:

android:listSelector="@drawable/timer_list_selector"

在drawable中定義timer_list_selector的屬性值

timer_list_selector.xml中定義如下:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">  <item android:state_selected="true" android:drawable="@android:color/transparent" /></selector>

在values文件夾下的colors.xml中定義transparent如下:

<color name="transparent">#50000000</color>

2)設置Item之間無間隙

在xml文件中ListView控件中加入如下屬性:

android:divider="#00000000"

或者在javaCode中如下定義:

listView.setDividerHeight(0);

3)自定義的BaseAdapter中調用notifyDataSetChanged()方法會重新調用BaseAdapter的getView()方法。

用心的朋友應該會發現,listview中在設置了背景之后。會有些問題。

1.、listview在拖動的時候背景圖片消失變成黑色背景。等到拖動完畢我們自己的背景圖片才顯示出來。

問題1 有如下代碼結解決

android:scrollingCache="false"

2 、listview的上邊和下邊有黑色的陰影。

問題2 用如下代碼解決:

android:fadingEdge="none"

3、lsitview的每一項之間需要設置一個圖片做為間隔。
問題3  用如下代碼解決: 

android:divider="@drawable/list_driver"

其中:@drawable/list_driver 是一個圖片資源

總體如下

<ListView android:id="@+id/myListView01" android:layout_width="fill_parent" android:layout_height="287dip" android:fadingEdge="none" android:divider="@drawable/list_driver" android:scrollingCache="false" android:background="@drawable/list"></ListView>

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android視圖View技巧總結》、《Android編程開發之SD卡操作方法匯總》、《Android開發入門與進階教程》、《Android資源操作技巧匯總》、《Android文件操作技巧匯總》及《Android控件用法總結

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通州区| 隆德县| 乐都县| 怀宁县| 新乡县| 彭阳县| 肇源县| 泰兴市| 于田县| 平利县| 监利县| 蒲城县| 安仁县| 西畴县| 顺昌县| 孝感市| 深泽县| 奉化市| 马鞍山市| 炎陵县| 秦皇岛市| 德昌县| 子洲县| 留坝县| 张家港市| 开平市| 元朗区| 新昌县| 依兰县| 方山县| 海淀区| 香港| 紫云| 怀来县| 离岛区| 穆棱市| 鄄城县| 西宁市| 当阳市| 左权县| 丽水市|