Android通过selector选择器设置Button或者textview的背景颜色,字体颜色

本文介绍如何使用Android选择器(selector)为Button和TextView设置背景颜色及字体颜色,强调了选择器中设置点击状态顺序的重要性,错误顺序会导致无法正确显示点击效果。

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

为了让button等控件的点击效果看起来很有动感,所以写了一个选择器。

具体的技能点很好理解,只是有一个地方需要注意的地方,一会我会标红。

这里我就拿button来举例子了,

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    //注意下面的代码顺序
    //设置button点击状态的背景
    //设置默认状态的背景,这里的背景可以使用drawable 也可以使用color,我这里使用drawable目的是要边框圆滑(自定义)
    <item android:state_pressed="true" android:drawable="@drawable/communityenterbackblue"/>
    <item android:drawable="@drawable/communityenterback"/>

</selector>  

这里有一个注意的地方:上面两行的顺序一定不能颠倒,如果那样,应该就会报错喽,为什么? 因为选择器的底层实现,是从上到下判断,正确顺序,代码判断是否点击,点击设置背景,未点击向下继续判断,到默认背景。 错误的顺序,代码到了默认设置的那行,判断确实是true,所以直接停,直接设置了背景 ,就不向下继续判断了,说的比较直白,大家容易理解。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    //button点击状态设置的颜色,注意这里使用的是android:color
    <item android:state_pressed="true" android:color="@color/button_unpressed"/>
    <item android:color="@color/button_pressed"/>

</selector>
 还有一个需要注意的地方:上面的代码是图片的背景使用的是android:drawable="@drawable/"   下面的却是android:color="" 这里要看好,textview设置  要使用color  而button 就要使用drawable了,千万不要说因为都是设置颜色就使用color、   原因这里我还真心不知道,知道的麻烦留言指教。

对了,textview设置背景和颜色的话  条件为focus。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值