最近在做一个登录、注册页面,里面需要显示或隐藏密码,故做了一个简单的显示和隐藏功能。
关键类TextView.setTransformationMethod(TransformationMethod method),其中TransformationMethod 有两个子类:
- HideReturnsTransformationMethod 隐藏回车
- PasswordTransformationMethod 密码类型
关键代码:
- @OnClick(R.id.iv_psw_eye)
- ? ? void clickPswEye() {
- ? ? ? ? int tag = Integer.parseInt(pswEyeIV.getTag().toString());
- ? ? ? ? if (tag == 1) {//显示密码
- ? ? ? ? ? ? pswEyeIV.setTag(2);
- ? ? ? ? ? ? pswEyeIV.setImageResource(R.mipmap.icon_psw_not_eye);
- ? ? ? ? ? ? passwordET.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
- ? ? ? ? } else {//隐藏密码
- ? ? ? ? ? ? pswEyeIV.setTag(1);
- ? ? ? ? ? ? pswEyeIV.setImageResource(R.mipmap.icon_psw_eye);
- ? ? ? ? ? ? passwordET.setTransformationMethod(PasswordTransformationMethod.getInstance());
- ? ? ? ? }
- ? ? }
我用ImageView的Tag属性存储当前密码输入框的类型,1是密码类型,2是显示类型。布局组件关键代码如下:
- <RelativeLayout
- ? ? ? ? ? ? android:layout_width="match_parent"
- ? ? ? ? ? ? android:layout_height="45dp"
- ? ? ? ? ? ? android:layout_gravity="center"
- ? ? ? ? ? ? android:layout_marginTop="26dp"
- ? ? ? ? ? ? android:background="@drawable/bg_edit_login"
- ? ? ? ? ? ? android:paddingLeft="26dp">
-
- ? ? ? ? ? ? <EditText
- ? ? ? ? ? ? ? ? android:id="@+id/password_ET"
- ? ? ? ? ? ? ? ? android:layout_width="match_parent"
- ? ? ? ? ? ? ? ? android:layout_height="match_parent"
- ? ? ? ? ? ? ? ? android:layout_toLeftOf="@+id/iv_psw_eye"
- ? ? ? ? ? ? ? ? android:background="@null"
- ? ? ? ? ? ? ? ? android:gravity="center_vertical"
- ? ? ? ? ? ? ? ? android:hint="请输入密码"
- ? ? ? ? ? ? ? ? android:inputType="textPassword"
- ? ? ? ? ? ? ? ? android:maxLines="1"
- ? ? ? ? ? ? ? ? android:textColor="@color/color_666666"
- ? ? ? ? ? ? ? ? android:textColorHint="@color/color_999999"
- ? ? ? ? ? ? ? ? android:textSize="13sp" />
-
- ? ? ? ? ? ? <ImageView
- ? ? ? ? ? ? ? ? android:id="@+id/iv_psw_eye"
- ? ? ? ? ? ? ? ? android:layout_width="wrap_content"
- ? ? ? ? ? ? ? ? android:layout_height="match_parent"
- ? ? ? ? ? ? ? ? android:layout_alignParentRight="true"
- ? ? ? ? ? ? ? ? android:paddingLeft="20dp"
- ? ? ? ? ? ? ? ? android:paddingRight="26dp"
- ? ? ? ? ? ? ? ? android:src="@mipmap/icon_psw_eye"
- ? ? ? ? ? ? ? ? android:tag="1" />
- </RelativeLayout>
截图:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。