1:把下面的XML文件保存成你自己命名的.xml文件(比如list_item_bg.xml),在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。
drawable/list_item_bg.xml
注意 我们的selector的xml文件是放在drawable目录下面。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/back_btn_s" android:state_pressed="true"></item>
<item android:drawable="@drawable/back_btn_n"/> <!-- default -->
</selector>
上面的就是我们的 selector使用例子
<!-- 默认时的背景图片 -->
<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" />
其次再来看看Button的一些背景效果:
android:state_selected是选中
android:state_focused是获得焦点
android:state_pressed是点击
android:state_enabled是设置是否响应事件,指所有事件
根据这些状态同样可以设置button的selector效果。也可以设置selector改变button中的文字状态。
注意 自己的归纳总结 :我们在设置selector的时候 我们的focused就是当我们的组件获得焦点的时候 也就是我们的
我们把鼠标只是放在他的上面的时候 但是pressed就是当我们把我们点击组建的那一刻。
enable他可以实现我们的组件被点击之后 长时间的显示一种效果 这个时候 使用setEnable 或者使用电视事件实现我们的效果
selected 这个可以再按钮上面试一下。
注意 我们在使用 enable的时候 一般都是多个组件组成的一个组件集合 这个时候 我们使用enable可以实现我们的让一个组件长期的显示一种状态。
注意:在我们操作 其他组件的时候 我们需要将非选择的组件设置为setEnable设置true 否则下一次在设置的时候 这个组件就是不可用的了
所以 选择器在一个组件的地方 我们是不采用 enable这个属性的
同时一定要记好 我们在操作 ui的时候 一定要在hanler里面实现相关操作
千万不可以在子线程里面直接实现操作 Timer 定时器 好像就是他是一个 内部实现了子线程的方法 记好
<selector xmlns:android="http://schemas.android.com/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>
< selector xmlns:android ="http://schemas.android.com/apk/res/android" > /
< item android:state_pressed ="true" >//定义当button 处于pressed 状态时的形态。
< shape >
< gradient android:startColor ="#8600ff" />
< stroke android:width ="2dp" android:color ="#000000" />
< corners android:radius ="5dp" />
< padding android:left ="10dp" android:top ="10dp"
android:bottom ="10dp" android:right ="10dp" />
</ shape >
</ item >
< item android:state_focused ="true" >//定义当button获得 focus时的形态
< shape >
< gradient android:startColor ="#eac100" />
< stroke android:width ="2dp" android:color ="#333333" color ="#ffffff" />
< corners android:radius ="8dp" />
< padding android:left ="10dp" android:top ="10dp"
android:bottom ="10dp" android:right ="10dp" />
</ shape >
</ item >
</ selector >
选择器在checkbox中的应用
注意
此时复选框有四种状态 就是 他是否被选中 他是否获得焦点 获得焦点就是光标放在这个组件上面
具体应用如下
<CheckBox
android:id="@+id/cb_quick"
android:layout_width="29dp"
android:layout_height="29dp"
android:background="@drawable/checkbox_btn"
android:button="@null" />
checkbox_btn.xml
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!-- @author AnJon.Xiao 多选框背景 -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/checkbox_1" android:state_checked="false" android:state_focused="false"/>
<item android:drawable="@drawable/checkbox_4" android:state_checked="true" android:state_focused="false"/>
<item android:drawable="@drawable/checkbox_2" android:state_checked="false" android:state_focused="true"/>
<item android:drawable="@drawable/checkbox_3" android:state_checked="true" android:state_focused="true"/>
</selector>
选择器使用 归纳总结:
注意 我们在使用pressed属性的时候
针对button可以直接使用 我们不需要在代码里面怎么设置 即可
但是imageview比较特殊 他是不可以点击的 我们需要此时需要设置他是可以点击的。
所以 我们在选择器里面使用 pressed属性的时候 只要这个组件可点击 我们就不需要设置什么 直接就可以使用 这个选择器
但是在使用 selected实现我们的选择器的时候 我们就需要使用点击 事件 设置我们的selected实现我们的选择其效果
我们在设置实现单选的时候 使用的原理 类似于RadioGroup RadioButton 只可以选择一个
这个时候 我们使用的选择器属性就是Enable enable的特点就是我们点击一个组件只可以点击一次
下一次务必点击其他的组件 从而实现我们的单选效果。
设置selected的时候 可以设置一个组件的状态 选中状态 或者是未选中状态。 这个地方可以设置多选的实现,
通过点击事件来实现
1:经验积累 注意 我们在设置多个选项的时候 我们既可以使checkbox 复选框 也可以使用radiogroup radiobutton
来设置我们的选项。 注意 我们的radiobutton是自己设置的 选择 当我们使用checkbox 我们就需要自己给予 设置,
2:
选择器 在radiobutton中的使用 我们这个时候 按钮多了一个状态 , 就是checked 为真或者假。
这个 时候 我们就可以借助 focused 以及 checked来设置我们选择器给予 这个组件 在各种不同的状态的下 的显示。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/spot_nor" android:state_checked="false" android:state_focused="false"/>
<item android:drawable="@drawable/spot_hov" android:state_checked="false" android:state_focused="true"/>
<item android:drawable="@drawable/ic_launcher" android:state_checked="true" android:state_focused="true"/>
<item android:drawable="@drawable/ic_launcher" android:state_checked="true" android:state_focused="false"/>
</selector>
radiobutton三种状态的实现的xml文件。