Android - Selector通过资源文件配置UI属性大全

原创 2017年09月13日 20:23:15

Android - Selector通过资源文件配置UI属性大全



本篇主要写如何通过资源文件,来配置不同的操作情形下,UI的表现:

1、CheckBox的资源配置

先列出两种不可行的案例:
(1)以下第一种方案,会造成的结果,是未选中的时候,CheckBox会消失

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 选中-聚焦 -->
    <item android:drawable="@drawable/checked_select" android:state_checked="true" android:state_enabled="true" android:state_focused="true"></item>
    <!-- 未选中-聚焦 -->
    <item android:drawable="@drawable/unchecked_select" android:state_checked="false" android:state_enabled="true" android:state_focused="true"></item>

    <!-- 已经选中-未聚焦 -->
    <item android:drawable="@drawable/test" android:state_checked="true" android:state_enabled="true" android:state_window_focused="false"></item>
    <!-- 未被选中 -未聚焦 -->
    <item android:drawable="@drawable/test" android:state_checked="false" android:state_enabled="true" android:state_window_focused="false"></item>

</selector>



(2)以下这种方式,焦点在CheckBox上切换的时候,样式不会改变:

<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:state_selected="false" android:state_checked="false" android:drawable="@drawable/unchecked"/>  
    <item android:state_selected="false" android:state_checked="true" android:drawable="@drawable/checked"/>

    <item android:state_selected="true" android:state_checked="false" android:drawable="@drawable/unchecked_select"/>  
    <item android:state_selected="true" android:state_checked="true" android:drawable="@drawable/checked_select"/>  
</selector>  


(3)经过很久探索,最后发现能够在焦点选中,checked、以及不选时候几种样式之前UI切换的正确配置为

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 这里的样式是有优先级的 第一个item的优先级最高 依次往下推 -->
    <!-- 选中且有焦点 -->
    <item android:drawable="@drawable/checked_select" android:state_checked="true" android:state_focused="true"/>
    <!-- 没有选中但是有焦点 -->
    <item android:drawable="@drawable/checked" android:state_checked="false" android:state_focused="true"/>
    <!-- 选中但没有焦点 -->
    <item android:drawable="@drawable/unchecked" android:state_checked="true" android:state_focused="false"/>
    <!-- 其他 -->
    <item android:drawable="@drawable/unchecked_select"/>

</selector>

2、

版权声明:目前博客大部分内容,均为从其他地方搬运来的,文中有注释,若需转载,也请注明

android中Selector中的相关属性及配置写法

android中Selector中的相关属性及配置写法,实现控件的背景及样式的改变
  • xiaoshengyufeng
  • xiaoshengyufeng
  • 2016年09月23日 16:28
  • 1818

Android selector中的属性浅析

本文主要介绍Android selector中的一些属性,请看文章!
  • itluochen
  • itluochen
  • 2016年12月08日 15:18
  • 302

Android UI--Shape和Selector

Android UI开发中,Shape定义控件的样式,Selector定义控件状态。比如定义圆角Button,矩形Button,Button按下后的变化响应等,下面介绍在XML文件中静态定义。 一、S...
  • mzxjhx
  • mzxjhx
  • 2017年03月02日 15:23
  • 114

Android selector的item里的属性说明

Selector是用来改变控件在不同状态(如:点击和不点击)下的行为,可以是颜色,或者上面的字。和在Android UI设计中经常用到。比如我们要自定义一个圆角Button,点击Button有些效果的...
  • banana1006034246
  • banana1006034246
  • 2016年03月12日 23:35
  • 675

Android selector的属性和使用详解

1.selector中全部属性 2.常用的属性分析 android:state_accessibility_focused是否能够获取焦点 android:state_selecte...
  • pcaxb
  • pcaxb
  • 2015年08月06日 15:41
  • 1360

android selector的item属性大全

必须。必须是根元素。包含一个或多个元素。 Attributes: xmlns:android String,必...
  • sdjianfei
  • sdjianfei
  • 2016年09月05日 17:16
  • 1631

Android selector item 属性大全(按钮按下不同效果)

必须。必须是根元素。包含一个或多个元素。           Attributes:              xmlns:android                    String,必...
  • yuanfenwuyue1989
  • yuanfenwuyue1989
  • 2012年06月24日 16:01
  • 8938

在android studio中创建selector xml

找了好久,在stack overflow上找到了解决方法
  • wjk7186912
  • wjk7186912
  • 2015年10月21日 14:40
  • 1885

Android selector item 属性大全

必须。必须是根元素。包含一个或多个元素。           Attributes:              xmlns:Android                    String,必...
  • qq_33495462
  • qq_33495462
  • 2016年05月25日 11:36
  • 90

selector属性设置详解

我们在定义一个drawable的时候可以通过xml定义的drawable对象。它使得一个图片能在不同的状态下显示不同的图案,比如一个Button,它有pressed,focused,或者其它状态,通过...
  • bestone0213
  • bestone0213
  • 2015年03月10日 20:38
  • 555
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android - Selector通过资源文件配置UI属性大全
举报原因:
原因补充:

(最多只允许输入30个字)