在做app的时候,我们经常会做一个登陆界面,登陆时需要输入账号密码,并且输入时要求密码不可见,但是我们观察会发现大部分app都会提供一个按钮,点击查看输入的密码是否正确,那么怎么实现呢?
效果视频
点击按钮显示密码
实现过程
1、首先需要在布局中写一个EditText,将inputtype设置为textpassword。
2、在布局中写一个ImageView,放入一个图片
3、在对应的Activity或者Fragment或者dialog中声明一个ImageVIew,并且找到第二部中的ImageView,然后实现点击事件
4、声明一个boolean值为false(代表不可见)。接下来请看代码(主要看onclick中的代码就行)
public class NetDialog extends Dialog implements View.OnClickListener {
Activity context;
private ImageView mChange;
private boolean VISIBLE = false;
public NetDialog setsTitle(String Title) {
this.sTitle = Title;
return this;
}
@SuppressLint("RtlHardcoded")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_net_dialog);
mChange = findViewById(R.id.change);
mChange.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.change:
//如果不可见
if (!VISIBLE) {
mChange.setImageResource(R.drawable.wifi_password_hide);//设置隐藏图标
mPassword.setInputType(InputType.
TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
//修改inputtype为可见
//将光标移动至最后
int textLength1 = mPassword.getText().length();
mPassword.setSelection(textLength1, textLength1);
将是否可见设置为是
VISIBLE = true;
//如果可见
} else {
mChange.setImageResource(R.drawable.wifi_password_show);//设置显示图标
mPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD |
InputType.TYPE_CLASS_TEXT);
//修改inputtype为不可见
//将光标移动至最后
int textLength2 = mPassword.getText().length();
mPassword.setSelection(textLength2, textLength2);
VISIBLE = false;
}
}
}
}