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);
            }
        };
  • 相关阅读:
    HDU 5213 分块 容斥
    HDU 2298 三分
    HDU 5144 三分
    HDU 5145 分块 莫队
    HDU 3938 并查集
    HDU 3926 并查集 图同构简单判断 STL
    POJ 2431 优先队列
    HDU 1811 拓扑排序 并查集
    HDU 2685 GCD推导
    HDU 4496 并查集 逆向思维
  • 原文地址:https://www.cnblogs.com/nmj1986/p/2790476.html
Copyright © 2011-2022 走看看