面向对象——初学者。大神们请笑而不语


  • android状态选择器节省的不仅仅是代码块,还有一些不必看但必须有的逻辑代码。搭配不同的控件更是如虎添翼!

  • 本文使用 checkBox + 状态选择器 完成状态保持的图片切换。代码简单,不为授学,只是给各位看客扩展一些思维。

  • 图中的 清除 案件是一个Button, 眼睛是 CheckBox 废除了样式
    通过使用CheckBox 的状态保持特性。 达到的简洁代码的效果。

效果图:

控件属性————————————————————-

    <Button  //清除        android:id="@+id/bt_username_clear"        android:layout_width="23dp"        android:layout_height="23dp"        android:layout_gravity="right|center_vertical"        android:layout_marginRight="10dp"        android:background="@drawable/button_clear_bg"        />    <CheckBox  //密码可见        android:id="@+id/cb_pwd_eye"        android:layout_width="23dp"        android:layout_height="23dp"        android:layout_gravity="right|center_vertical"        android:layout_marginRight="10dp"        android:button="@null"                        //废除默认样式        android:background="@drawable/button_eye_bg"  //设置状态选择器        android:checked="false"/> 

Button 状态选择器

    <selector xmlns:android="http://schemas.android.com/apk/res/android">        <item android:state_pressed="true" android:drawable="@drawable/button_clear_pre">item>        <item android:state_pressed="false" android:drawable="@drawable/button_clear_nor">item>    selector>

CheckBox 状态选择器

    <selector xmlns:android="http://schemas.android.com/apk/res/android">                <item android:state_checked="true" android:drawable="@drawable/button_eye_pre">item>                <item android:state_checked="false" android:drawable="@drawable/button_eye_nor">item>    selector>

CheckBox逻辑源码:代码中只需要根据CheckBox 选中状态。完成自己的逻辑处理即可。

    CheckBox bt_pwd_eye = (CheckBox) findViewById(R.id.cb_pwd_eye);    bt_pwd_eye.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {        @Override        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {            if(isChecked){                et_password.setInputType(EditorInfo.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);                Toast.makeText(LoginActivity.this, "密码不可见", Toast.LENGTH_SHORT).show();            }else {                et_password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);                Toast.makeText(LoginActivity.this, "密码可见", Toast.LENGTH_SHORT).show();            }        }    });

最后:谢谢观看

更多相关文章

  1. android 仿微信聊天气泡效果实现思路
  2. Android中Notification的framework层讲解
  3. XML解析和生成之--pull(android内置)
  4. Android(安卓)程序以及在4.4.4以上报错但是在4.4.4以上不报错
  5. Android(安卓)Launcher研究--手把手教你在Windows环境下下载Andr
  6. Android和用户交互的媒介Activity-生命周期方法
  7. 【Android】SQLiteOpenHelper类(sql语句实现增删改查),封装SQLite
  8. Android原生与H5交互的实现
  9. 15个开发者最亲睐的Andr​​oid代码编辑器

随机推荐

  1. Android(安卓)WebView不支持H5输入type =
  2. android 动画入门(一)
  3. Android之监测手机网络状态的广播
  4. Android开发签名(签名的作用,怎么使用Andro
  5. Android热修复方案研究(含AOP知识)
  6. Android(安卓)基础知识面试相关总结
  7. android px dpi 转换
  8. 2016年最佳的15款Android黑科技工具你知
  9. android 关于多任务下载问题
  10. 门道儿众多 购买Android手机注意事项