zoukankan      html  css  js  c++  java
  • Android_按钮被按下效果的实现(selector选择器)

    在很多刚入门的新手在开发实例的过程中,经常会遇到要按下某个ImageView时,需要加入确认感的时候.需要在按下的时候,控制ImageVIew内图片的显示.

    在我是新手的时候,也这样做过.
    所以这里简单介绍一下selector选择器的使用.

    首先定义需要准备两张图片,一张不按下去的,一张是按下去的.
    分别叫做button_unpressed.png 和button_pressed.png
    把他们放大drawable文件目录下(与要开发应用需要的分辨率文件夹中).

     

    1. <?xml version="1.0" encoding="utf-8" ?>     
    2. <selector xmlns:android="http://schemas.android.com/apk/res/android">   
    3. <!-- 默认时的背景图片 -->    
    4.   <item android:drawable="@drawable/pic1" />      
    5. <!-- 没有焦点时的背景图片 -->    
    6.   <item android:state_window_focused="false"     
    7.         android:drawable="@drawable/pic1" />     
    8. <!-- 非触摸模式下获得焦点并单击时的背景图片 -->    
    9.   <item android:state_focused="true" android:state_pressed="true"     
    10.         android:drawable= "@drawable/pic2" />    
    11. <!-- 触摸模式下单击时的背景图片 -->    
    12.   <item android:state_focused="false" android:state_pressed="true"     
    13.         android:drawable="@drawable/pic3" />     
    14. <!--选中时的图片背景  -->    

    如果你的工程的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内定义的内容.

  • 相关阅读:
    Study Plan The TwentySecond Day
    Study Plan The Nineteenth Day
    Study Plan The TwentySeventh Day
    Study Plan The Twentieth Day
    Study Plan The TwentyFirst Day
    python实现进程的三种方式及其区别
    yum makecache
    JSONPath 表达式的使用
    oracle执行cmd的实现方法
    php daodb插入、更新与删除数据
  • 原文地址:https://www.cnblogs.com/fx2008/p/3146077.html
Copyright © 2011-2022 走看看