巧用android 控件—CheckBox + 状态选择器
16lz
2021-01-26
面向对象——初学者。大神们请笑而不语
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(); } } });
最后:谢谢观看
更多相关文章
- android 仿微信聊天气泡效果实现思路
- Android中Notification的framework层讲解
- XML解析和生成之--pull(android内置)
- Android(安卓)程序以及在4.4.4以上报错但是在4.4.4以上不报错
- Android(安卓)Launcher研究--手把手教你在Windows环境下下载Andr
- Android和用户交互的媒介Activity-生命周期方法
- 【Android】SQLiteOpenHelper类(sql语句实现增删改查),封装SQLite
- Android原生与H5交互的实现
- 15个开发者最亲睐的Android代码编辑器