在很多刚入门的新手在开发实例的过程中,经常会遇到要按下某个ImageView时,需要加入确认感的时候.需要在按下的时候,控制ImageVIew内图片的显示.
在我是新手的时候,也这样做过.
所以这里简单介绍一下selector选择器的使用.
首先定义需要准备两张图片,一张不按下去的,一张是按下去的.
分别叫做button_unpressed.png 和button_pressed.png
把他们放大drawable文件目录下(与要开发应用需要的分辨率文件夹中).
- <?xml version="1.0" encoding="utf-8" ?>
- <selector xmlns:android="http://schemas.android.com/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" />
- <!--选中时的图片背景 -->
如果你的工程的res文件目录下没有drawable文件(不带分辨率).则需要新建一个drawable文件夹(不带分辨率)
新建一个xml文件,取名叫做 button_selector.xml
xml代码如下
1 2 3 4 5 6 7 8 9 |
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="false"
android:drawable="@drawable/button_unpressed" />
<item
android:state_pressed="true"
android:drawable="@drawable/button_pressed" />
</selector>
|
这样我们的selector选择器就配置好了.
然后接下来,我们就可以需要使用它;
1 2 3 4 5 6 7 8 |
<Button
android:id="@+id/setting"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_selector"
/>
|
然后运行效果看看吧.
注意: selector文件 不管是在xml中或者是代码中使用方法 跟调用图片的方式是一样的.
某些组件使用selector是不会有效果的.例如ImageView组件,因为ImageView是非焦点组件.不会获取
屏幕焦点.所有的非焦点组件都不会响应selector内定义的内容.