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

实现过程:

(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);        }    };

更多相关文章

  1. android使用豆瓣API出现500错误及解决方法
  2. android 项目 local_Test_exam 代码分享
  3. Android(安卓)jni代码注册本地方法
  4. Android(安卓)开发第四天
  5. Android(安卓)RecyclerView 的点击事件
  6. Android(安卓)自定义实现switch开关按钮
  7. Android(安卓)8.1隐藏状态栏图标的实例代码
  8. android内存泄露优化总结
  9. android 通知播放系统声音

随机推荐

  1. Android开源计划-一周开发app
  2. 第十五章 Android的广播机制和BroadCast
  3. 在android设计中,如何在有限的界面上做布
  4. H5和android原生APP之间的区别,Android与H
  5. android平台上调试2款camera sensor
  6. 完全理解android事件分发机制
  7. 探索 Android(安卓)系统启动流程 - 当我
  8. Android实现异步处理 -- HTTP请求为例
  9. 我的第一个Android升级版本
  10. 为何 Android(安卓)4手机不能当 U 盘了