• Android根据Button状态(normal,focused,pressed)显示不同背景图片


    Android中Button 有focused, selected, pressed 等不同状态,通过配置一个XML格式的 drawable "selector" 即可实现”在不同状态下显示不同背景图片“的功能。

    1. 在res/drawable目录下添加一个xml文件,用来描述Button在不同状态下对应的不同图片。我这里给该xml文件命名为btn_background.xml



     

    <?xml version="1.0" encoding="UTF-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
    android:drawable
    ="@drawable/btn_pressed" /> <!-- pressed -->
    <item android:state_focused="true"
    android:drawable
    ="@drawable/btn_normal" /> <!-- focused -->
    <item android:drawable="@drawable/btn_normal" /> <!-- default -->
    </selector>

    2. 在res/layout目录下,对应的layout xml文件中,将Button的android:background属性设置为btn_background即可。

     

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation
    ="vertical"
    android:layout_width
    ="fill_parent"
    android:layout_height
    ="fill_parent"
    >
    <Button
    android:layout_width="wrap_content"
    android:layout_height
    ="wrap_content"
    android:background
    ="@drawable/btn_background"
    />
    </LinearLayout>

    3.运行结果

    默认状态(unselected)

     

    点击状态(pressed)


    参考资料:

    Google Android开发文档:ImageButton

    http://developer.android.com/reference/android/widget/ImageButton.html

    我的Twitter @mainroadlee

    http://twitter.com/#!/mainroadlee

    talkbox id:mainroadlee

  • 相关阅读:
    c++11 可变参数模板类
    c++11 可变参数模板函数
    c++11 函数模板的默认模板参数
    c++11 模板的别名
    超声波模块SRF05
    Eclipse中快捷键的使用
    移动互联网教育领域或将出现新的风口?
    java Date 和 javascript Date
    linux下安装node.js
    J2EE之初识JSP
  • 原文地址:https://www.cnblogs.com/mainroadlee/p/Change_the_background_image_based_on_the_state_of_the_button_on_Android.html
Copyright © 2020-2023  润新知