android中color-selector的使用

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"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,676评论 25 709
  • 概述 今天我们来探究一下android的样式。其实,几乎所有的控件都可以使用 background属性去引用自定义...
    CokeNello阅读 4,941评论 1 19
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,761评论 0 17
  • 走过千山,走过万水 遇到过多少人,多少人曾擦肩而过?向一次性的餐具,再也没有机会相遇。而那些曾感动过,你爱过你的人...
    东方地秀阅读 279评论 0 1
  • 这部电影,是因为小李子而找来看的。但,想跟你聊聊它,却基本与小李子无关——如果说有关系,大概只在人们嘲弄“当年的J...
    古宁的古德毛宁阅读 296评论 1 1