Android动态实现文字颜色选择器 ColorStateList

本文介绍了在Android项目中如何动态地创建并应用ColorStateList,以实现文字在不同状态(如按下、默认)下显示不同颜色的功能。通过解析XML资源文件`test.xml`来创建选择器,虽然在Android Studio中可能会遇到警告,但代码仍能正常运行。然而,提交到Git时可能会遇到报错问题。

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

在公司做项目的时候设计到了动态设置选择器的内容今天我来写一下关于动态实现选择器的内容:

应为才进公司所以被分配到的是简单的活,修改按钮的字体颜色,也就是实现字体颜色的选择器,因此我先说ColorStateList  :

ColorStateList 可以实现按住的时候状态和没有按住状态的文字显示不同的颜色


下面是test.xml 的代码

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true" android:color="@color/testcolor1"/>
   <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" />
   <item android:state_enabled="false" android:color="@color/testcolor3" />
   <item android:color="@color/testcolor5"/>
 </selector>

实现了选择器以后可以直接在

文件放在res文件夹的color中,在使用ColorStateList 的时候会遇到提醒不支持的状况(Android Studio中),但是可以正常运行,但是在提交Git的时候会报错

下面是代码:


 if(choose1)
                {

                        mColorStateList =getResources().getColorStateList(R.color.test1);

                }
                else
                {

                        mColorStateList =getResources().getColorStateList(R.color.test2);

                }

                bt1.setTextColor(mColorStateList);
                choose1 = !choose1;

当使用直接使用getColorStateList 使用的会报错(我用的是MOTO X Style调试的),可是在源文件中现在支持的就是直接使用 getColorStateList ,如果您知道怎么解决请给我留言十分感谢!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值