Android开发EditText实现密码显示隐藏

最近在做一个登录、注册页面,里面需要显示或隐藏密码,故做了一个简单的显示和隐藏功能。

关键类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>

截图:

推荐阅读