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的时候就代表没有分隔线: