EditText为密码输入控件设置为可见的实现
iv_show为ImageView控件
et_t为EditText控件
isHidden默认为false
iv_show.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
setPassHint(et_t);
}
});
实现方法
public void setPassHint(EditText editText) {
if (!isHidden) {
iv_show.setImageResource(R.drawable.login_password_close);
// 设置EditText文本为可见的
editText.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
} else {
iv_show.setImageResource(R.drawable.login_password_open);
// 设置EditText文本为隐藏的
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());
}
isHidden = !isHidden;
editText.postInvalidate();
// 切换后将EditText光标置于末尾
CharSequence charSequence = editText.getText();
if (charSequence instanceof Spannable) {
Spannable spanText = (Spannable) charSequence;
Selection.setSelection(spanText, charSequence.length());
}
}
效果:
默认iv_show图片显示R.drawable.login_password_open,EditText 为密文输入;
点击iv_show图片后,该图片显示为R.drawable.login_password_close,EditText 为明文输入。