selector选择器,常用来做组件的背景,可以用代码来控制组件在不同状态的背景颜色或图片的切换。常用的是color-selector和drawable-selector,下面主要来介绍color-selector的使用。
color-selector用来实现颜色状态列表,使用方法和color一样,颜色会随着组件的状态而改变。color-selector文件存储在如下目录:
//文件路径
/res/color/filename.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="hex_color" //颜色值,#RGB,$ARGB,#RRGGBB,#AARRGGBB
android:state_pressed=["true" | "false"]//是否触摸
android:state_focused=["true" | "false"]//是否获得焦点
android:state_selected=["true" | "false"]//是否被状态
android:state_checkable=["true" | "false"]//是否可选
android:state_checked=["true" | "false"]//是否选中
android:state_enabled=["true" | "false"]//是否可用
android:state_window_focused=["true" | "false"] />//是否窗口聚焦
</selector>
创建res/color/right_menu_text_color.xml文件,内容如下。实现将文字在disable时置灰且不可点击,而enable时文字点亮且可点击的功能
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:color="#cccccc"/>
<item android:state_enabled="true" android:color="#ffffff" />
<item android:color="#cccccc"/>
</selector>
//java调用注意一定要使用**getResources().getColorStateList(textColor)**方法,才能生效
textView.setTextColor(getResources().getColorStateList(R.color.right_menu_text_color));
//xml调用直接使用
android:textColor = "@color/filename"
3人点赞
作者:zizi192
链接:https://www.jianshu.com/p/46a68f82eaf8
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
.