失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android开发(六)——组件颜色Selector(Selector与Shape的基本用法 )

Android开发(六)——组件颜色Selector(Selector与Shape的基本用法 )

时间:2020-08-20 15:07:53

相关推荐

Android开发(六)——组件颜色Selector(Selector与Shape的基本用法 )

andorid控件改变状态时改变颜色,使用selector。

<?xml version="1.0" encoding="utf-8" ?><selector xmlns:android="/apk/res/android"><!-- 默认时的背景图片--><item android:drawable="@drawable/pic1" /><!-- 没有焦点时的背景图片--><item android:state_window_focused="false" android:drawable="@drawable/pic1" /><!-- 非触摸模式下获得焦点并单击时的背景图片--><item android:state_focused="true" android:state_pressed="true"android:drawable="@drawable/pic2" /><!-- 触摸模式下单击时的背景图片--><item android:state_focused="false" android:state_pressed="true"android:drawable="@drawable/pic3" /><!--选中时的图片背景--><item android:state_selected="true" android:drawable="@drawable/pic4" /><!--获得焦点时的图片背景--><item android:state_focused="true" android:drawable="@drawable/pic5" /></selector>

View Code

android:state_selected是选中

android:state_focused是获得焦点

android:state_pressed是点击

android:state_enabled是设置是否响应事件,指所有事件

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android" ><itemandroid:color="hex_color"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>

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><item android:state_selected="true" android:color="#FFF" /><item android:state_focused="true" android:color="#FFF" /><item android:state_pressed="true" android:color="#FFF" /><item android:color="#000" /></selector>

View Code

实例:

先在values目录创建color.xml文件,在里面加入以下自定义颜色(注意不是用color标签)的代码:

<?xml version="1.0" encoding="utf-8"?><resources><drawable name="red">#f00</drawable><drawable name="green">#0f0</drawable><drawable name="gray">#ccc</drawable></resources>

然后在res下新建drawable目录,里面新建btn_bg.xml和btn_color.xml文件,代码如下:

btn_bg.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><item android:state_window_focused="false" android:state_enabled="true"android:drawable="@drawable/btn_test_normal" /><item android:state_enabled="false" android:drawable="@drawable/btn_test_normal" /><item android:state_pressed="true" android:drawable="@drawable/btn_test_press" /><item android:state_focused="true" android:drawable="@drawable/btn_test_normal" /></selector>

btn_color.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><item android:state_focused="false" android:state_enabled="true" android:state_pressed="false"android:color="@drawable/red" /><item android:state_enabled="false" android:color="@drawable/gray" /><item android:state_pressed="true" android:color="@drawable/green" /><item android:state_focused="true" android:color="@drawable/red" /></selector>

最后是测试用的布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@android:color/white"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="按下文字会变效果"android:textColor="@drawable/btn_color"android:background="@drawable/btn_bg"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="按钮被禁用"android:enabled="false"android:textColor="@drawable/btn_color"android:background="@drawable/btn_bg"/></LinearLayout>

参考:

/maylian7700/article/details/6978131

/kf/10/107866.html

/guide/topics/resources/color-list-resource.html

/lzt623459815/article/details/8538784

如果觉得《Android开发(六)——组件颜色Selector(Selector与Shape的基本用法 )》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。