Android 点击按钮同时更换按钮背景颜色和按钮文本颜色
2016-04-25 09:18
585 查看
上周五工作时遇到了一个需求,要求顶部有三个单选按钮,按下其中一个按钮时,该按钮的背景颜色及文本颜色均发生改变。
首先考虑用了RadioGroup,控件里面设置了三个RadioButton,水平排列。
我在设计实现需求的时候,同样是考虑使用selector,这样代码会简洁直观方便。
一开始我是这样写selector的:将文字颜色和背景颜色分开,写两个selector。
背景颜色selector如下所示:
现将正确代码粘贴下来,以供日后参考复习!
1. 在values文件夹下的strings.xml中添加代码:
首先考虑用了RadioGroup,控件里面设置了三个RadioButton,水平排列。
<RadioGroup android:id="@+id/radioGroup1" android:layout_width="150dp" android:layout_height="match_parent" android:layout_centerInParent="true" android:orientation="horizontal" > </RadioGroup>RadioButton其他属性的设置就暂且不提,比较简单。
我在设计实现需求的时候,同样是考虑使用selector,这样代码会简洁直观方便。
一开始我是这样写selector的:将文字颜色和背景颜色分开,写两个selector。
背景颜色selector如下所示:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:color="#ffffff"></item> <item android:state_checked="false" android:color="#3884F8"></item> </selector>文字颜色设置如下:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:color="#3884F8"></item> <item android:state_checked="false" android:color="#ffffff"></item> </selector>然后在style.xml文件中设置:
<item name="android:textColor">@drawable/function_item_button_text_selector</item> <item name="android:background">@drawable/item_button_selector</item>结果查看布局显示结果时报错,
Failed to configure parser for D:\workspace\...\res\drawable\item_button_selector.xml Exception details are logged in Window > Show View > Error Log然后百思不得其解,后来百度前人的经验,知道设置背景颜色时候最好引用drawable,通过更改代码,然后就不再报错了。
现将正确代码粘贴下来,以供日后参考复习!
1. 在values文件夹下的strings.xml中添加代码:
<drawable name="unchecked">#456598</drawable> <drawable name="checked">#ffffff</drawable>2. drawable文件夹下的item_button_selector.xml文件中的代码
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/checked" android:state_checked="true"/> <item android:drawable="@drawable/unchecked" android:state_checked="false"/> </selector>function_item_button_text_color文件中的代码:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:color="#3884F8"></item> <item android:state_checked="false" android:color="#ffffff"></item> </selector>3. 在style.xml文件中对应的style中添加代码
<item name="android:textColor">@drawable/function_item_button_text_selector</item> <item name="android:background">@drawable/item_button_selector</item>大功完成!
相关文章推荐
- Android KeyCode列表
- Hello world!
- Android多媒体分析(二)MediaStore
- Android——Service装取数据
- (4.1.11.1)Android中使用RecyclerView和CardView实现瀑布流效果(StaggeredGrid)
- android BroadcastReceiver
- (4.6.10)Android中MVP模式与MVC模式比较(含示例)
- Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
- Android Scroll分析——滑动效果产生
- Android的AadapterView组件中的几个常用实现类
- Android 富有动感的底部弹出框
- Android实现拨打电话功能
- AndroidStudio十佳常见编译或运行错误集锦
- geekband android #5 第八周分享(多线程)
- 为什么线程会放弃Suspend和Resume方法
- 记Android关于.9切图的一点小技巧
- Android SDK Manager 更新代理配置
- Android学习笔记(43):Java开发SQLite程序
- Android中的RxJava,Retrofit,MVP的使用
- 活动——Intent在活动之间穿梭