您的位置:首页 > 移动开发 > Android开发

Android_按钮被按下效果的实现(selector选择器)

2013-06-20 15:27 218 查看
在很多刚入门的新手在开发实例的过程中,经常会遇到要按下某个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内定义的内容.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: