android中ListView的显示效果

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>

我这里显示的是选中是每项的背景为白色,按下后显示为黄色,平时就默认背景色

android中ListView的显示效果_第1张图片

列表中的分隔线也可以自己定义,可以显示颜色或者图像

<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"

  />

android中ListView的显示效果_第2张图片

如果dividerHeight为0px的时候就代表没有分隔线:

android中ListView的显示效果_第3张图片


你可能感兴趣的:(android,ListView,layout,存储,resources,encoding)