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

2022-08-02 13:56:41

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

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

    截图:

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