zoukankan      html  css  js  c++  java
  • Android——用XML的selector实现按钮多态 Binary

    目标:按钮未按下时为(一)状态;按钮按下时为(二)状态,并在事件执行时保持该状态;事件结束后恢复为(一)状态;

    实现过程:

    (1) btn_status的xml代码:

    1 <?xml version="1.0" encoding="utf-8"?>
    2 <selector xmlns:android="http://schemas.android.com/apk/res/android" >
    3     <item android:state_pressed="true" android:drawable="@drawable/bt_bg2" />
    4     <item android:state_focused="true" android:drawable="@drawable/bt_bg2" />
    5     <item android:state_enabled="false" android:drawable="@drawable/bt_bg2" />
    6     <item android:state_enabled="true" android:drawable="@drawable/bt_bg" />
    7     <item android:drawable="@drawable/bt_bg" />
    8 </selector>

    (2) 使用到(1)的布局文件代码:

    <LinearLayout
                android:id="@+id/linearBtnBg"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="62dip"
                android:layout_marginRight="62dip"
                android:background="@drawable/btn_status">
    
                <ImageButton
                    android:id="@+id/imageButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@null"
                    android:contentDescription="@null"
                    android:src="@drawable/bt_operate"
                    android:clickable="false" />
    </LinearLayout>

    (3) Java代码:

      a) 点击  linearBtnBg 组件:   

      if (v.getId() == R.id.linearBtnBg) {
        linearBtnBg.setEnabled(false);
      }

      b) 回调事件结束后: 

    private Callback mCallback = new Callback() {
            @Override
            public void onStateChanged(int state) {
                    linearBtnBg.setEnabled(true);
            }
        };
  • 相关阅读:
    论文连接
    MySQL中的datetime与timestamp比较
    查看挂载情况
    insertable = false, updatable = false的使用
    umount: /home: device is busy
    LVM
    erase-credentials配置
    <T> List<T>前面<T>的意思
    Java 内部类 this
    AuthenticationManager, ProviderManager 和 AuthenticationProvider
  • 原文地址:https://www.cnblogs.com/nmj1986/p/2790476.html
Copyright © 2011-2022 走看看