最近在做一个登录、注册页面,里面需要显示或隐藏密码,故做了一个简单的显示和隐藏功能。
关键类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>
截图:
今日推荐