为listview设置点击效果

本文介绍如何通过XML设置实现UI元素的点击反馈效果,包括字体颜色及背景的变化。具体步骤涵盖创建选择器文件来定义不同状态下的颜色与背景样式,并在布局文件中应用这些样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:点击条目时字体和颜色变化,抬起时恢复。


一  先进行字体颜色变化设置


1 先准备字体变化的drawable文件 selector_text_color,要注意的是 属性是color,不是drawable

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

2 在子条目中使用

<TextView
        android:id="@+id/device_address"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:background="@drawable/selector_background"
        android:gravity="center"
        android:textColor="@drawable/selector_text_color"
        android:textSize="15dp" />

二 背景变化的设置

1 跟之前一样,首先准备点击背景变化的drawable文件 selector_background 。

因为背景变化需要涉及圆角和颜色的组合,所以还会用到自己绘制的drawable,当然如果只有颜色的变化可以直接写,不需要drawable

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/item_result1" android:state_pressed="true"/>
    <item android:drawable="@drawable/item_result"/>

</selector>

2 两种背景样式,分别是result和result1

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:color="@color/simple_blue"
        android:width="1dp"/>
    <corners android:bottomLeftRadius="20dp"
        android:bottomRightRadius="20dp"
        android:topLeftRadius="20dp"
        android:topRightRadius="20dp"/>
</shape>

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:color="@color/simple_blue"
        android:width="1dp"/>
    <solid android:color="@color/simple_blue"/>
    <corners android:bottomLeftRadius="20dp"
        android:bottomRightRadius="20dp"
        android:topLeftRadius="20dp"
        android:topRightRadius="20dp"/>
</shape>

3 在子条目中使用1中的文件 可以看到字体和背景同时进行了设置

    <TextView
        android:id="@+id/device_address"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:background="@drawable/selector_background"
        android:gravity="center"
        android:textColor="@drawable/selector_text_color"
        android:textSize="15dp" />


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值