selector选择器,常用来做组件的背景,可以用代码来控制组件在不同状态的背景颜色或图片的切换。常用的是color-selector和drawable-selector,下面主要来介绍color-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人点赞

 

Android开发

 



作者:zizi192
链接:https://www.jianshu.com/p/46a68f82eaf8
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

 

 

 

 

 

 

 

.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐