ListView中的每一項的顯示情況,比如排列和在每項中加圖檔等情況,隻要使用各種Layout和自定義Adapter就可以了,這類文章網上很多,不多說了。
關于ListView中的每一項,預設選中的時候是黃色,點選就會進入,但往往我們覺得這種顯示方式不甚美觀,Android提供了自定義每個item的顯示顔色配置方法:——》selector
首先,在values檔案夾中建立一個colors.xml檔案,存儲各種配色:
<?xml version="1.0"encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- <item -->
<!-- android:state_selected="false"-->
<!-- android:state_pressed="false"-->
<!-- android:drawable="@drawable/white"-->
<!-- /> -->
<item
android:state_pressed="true"
android:drawable="@drawable/yellow"
/>
<item
android:state_selected="true"
android:drawable="@drawable/white"
/>
</selector>
每種item表示一種顯示情況,android:state_selected表示該項被選中的時候顯示的顔色或圖檔,android:state_pressed表示該項被按下的時候顯示的顔色或圖檔,若均為false則表示該項在不被按下也不被選中時候的顔色或圖檔。
該檔案在可以了解為一個圖檔檔案,放在drawable檔案夾下:
在自定義的Adapter的getView()方法中,添加一句:
convertView.setBackgroundResource(R.drawable.daibanbg);
這裡要注意的是,android:drawable中@後面是drawable還是color取決于在colors.xml中的定義,如:
<resources>
<drawable name="red">#7f00</drawable>
<drawable name="blue">#770000ff</drawable>
<drawable name="green">#7700ff00</drawable>
<drawable name="yellow">#77ffff00</drawable>
<drawable name="screen_background_black">#ff000000</drawable>
<drawable name="translucent_background">#e0000000</drawable>
<drawable name="transparent_background">#00000000</drawable>
<drawable name="darkgray">#808080FF</drawable>
<drawable name="white">#FFFFFFFF</drawable>
<drawable name="silver">#00ffffff</drawable> <!-- 透明色 -->
<color name="solid_red">#f00</color>
<color name="solid_blue">#0000ff</color>
<color name="solid_green">#f0f0</color>
<color name="solid_yellow">#ffffff00</color>
</resources>
我這裡顯示的是選中是每項的背景為白色,按下後顯示為黃色,平時就預設背景色
清單中的分隔線也可以自己定義,可以顯示顔色或者圖像
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:divider="#FFCC00"
android:dividerHeight="1px"
/>
如果dividerHeight為0px的時候就代表沒有分隔線: