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>

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


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

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值