• 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);
            }
        };
  • 相关阅读:
    数据库事务之不可重复读
    数据库事务与脏读
    图结构代码实现
    哈希表与散列函数
    数据库表设计与视图
    B树和B+树
    java之字符串中查找字串的常见方法
    剑指 Offer 15. 二进制中1的个数——JS
    剑指 Offer 03. 数组中重复的数字——JS
    算法设计与分析——排序
  • 原文地址:https://www.cnblogs.com/nmj1986/p/2790476.html
Copyright © 2020-2023  润新知