参考网址:EditText的setTransformationMethod的使用_小小程序员-CSDN博客_settransformationmethod
一、代码实现 1.1 密码框布局
1.2 Java逻辑
(1)在LoginActivity类中定义一个变量isHide,用于判断密码是否需要隐藏,默认为false,即不隐藏;
private boolean isHide = false; //输入框密码是否是隐藏,默认为false
(2)定义ImageView的点击响应函数isShowPassword();
private void isShowPassword() {
if(isHide == false) {
//R.mipmap.password_show是表示显示密码的“眼睛”图标
isPwdShowIv.setImageResource(R.mipmap.password_show);
//密文
HideReturnsTransformationMethod method1 = HideReturnsTransformationMethod.getInstance();
pwdEt.setTransformationMethod(method1);
isHide = true;
} else {
//R.mipmap.password_miss是表示隐藏密码的“眼睛+斜杠”图标
isPwdShowIv.setImageResource(R.mipmap.password_miss);
//密文
TransformationMethod method2 = PasswordTransformationMethod.getInstance();
pwdEt.setTransformationMethod(method2);
isHide = false;
}
//重置光标位置
int index = pwdEt.getText().toString().length();
pwdEt.setSelection(index) ;
}
注:其中的“显示密码”图标和“隐藏密码”图标可以在iconfont矢量库 中下载
(3)在LoginActivity类的onCreate()方法中设置 “显示密码” 按钮的监听器,代码如下:
isPwdShowIv = findViewById(R.id.login_is_show_pwd); isPwdShowIv.setonClickListener(this); //设置ImageView的初始图标为“眼睛”,表示“显示密码” isPwdShowIv.setImageResource(R.mipmap.password_miss);
(4)让LoginActivity类实现View.OnClickListener接口,并在onClick()函数中调用ImageView的点击响应函数;
//LoginActivity类实现View.OnClickListener接口 public class LoginActivity extends baseActivity implements View.onClickListener //在onClick()函数中调用ImageView的点击响应函数; case R.id.login_is_show_pwd: isShowPassword(); break;



