【Android 初级知识】文字颜色 背景 触摸点击 反馈色 之selector的那些事儿

本文介绍了如何为Android的TextView和Button设置文字颜色选择器(Selector),包括解决硬编码颜色值无效的问题,以及如何为控件设置color类型的Selector作为背景,并解决了由此产生的错误。
摘要由CSDN通过智能技术生成

================================================================

二:为 文字设置Selector

以上为众所周知的做法,可是今天的同事问我 TextView Button 等能显示文字的控件,上面的TextColor能用Selector做么?我不假思索的回答,当然可以。做法如下:

<Button

android:layout_marginTop=“100dp”

android:textColor="@drawable/selector_color_text"

android:text=“测试颜色变色不”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content” />

对应Selector文件如下:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android=“http://schemas.android.com/apk/res/android”>

<item android:color="#fdfffe" android:state_pressed=“true” />

这里有个坑点是,一开始我用

<item android:color="#fdfffe" android:state_pressed=“true” />

这种把android:color 写成硬编码的形式,可是会报错无效果,反正出不来结果。

后来搜了一下资料,说是要把color的值也写在xml里(colos.xml),然后在Selector文件里引用,如 @color/xxx。

或者引用系统的,如

<item android:color="@android:color/holo_blue_bright" android:state_pressed=“true” />

采用@color/xxx引用形式完成效果后,我开始总结规律的时候,我再次尝试硬编码形式,发现依然也可以实现效果。原因未知,反正各位如果遇到使用硬编码如#123456 代表颜色值时无效时,可以尝试一下将其放入colors.xml里 试试。如:

<?xml version="1.0" encoding="utf-8"?>

<color name=“colorPrimary”>#3F51B5

<color name=“colorPrimaryDark”>#303F9F

<color name=“colorAccent”>#FF4081

===========================================================================================================

第三个问题来了,如果我想用color颜色值作为某个控件的背景,同时要有Selector效果,该如何做?

三:为控件设置color类型的Selector效果的 background,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值