这里我们写一个在登录demo中常见的功能,当点击眼睛图片时,使密码可见或不可见,即形成一种保护,也防止了我们输入错误密码情况的出现,是很友好的一个功能。
两张图片:
睁眼:
闭眼:
大家记得复制粘贴到drawable.xml文件中。
注意一下命名规则,推荐:see.png和nosee.png。
然后,我们去写一下布局的代码:
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/password_edit_text"
android:layout_width="363dp"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="Password" />
<ImageButton
android:id="@+id/visibility_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@id/password_edit_text"
android:layout_alignBottom="@id/password_edit_text"
android:background="@android:color/transparent"
android:src="@drawable/nosee" />
</LinearLayout>
由于每个人module的版本不一样,呈现的效果会有一定的偏差,大小位置等可以自行调整。
功能实现部分:
public class MainActivity extends AppCompatActivity {
private EditText passwordEditText;
private ImageButton visibilityButton;
private boolean isPasswordVisible = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
passwordEditText = findViewById(R.id.password_edit_text);
visibilityButton = findViewById(R.id.visibility_button);
visibilityButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
togglePasswordVisibility();
}
});
}
private void togglePasswordVisibility() {
if (isPasswordVisible) {
// 设置密码不可见
passwordEditText.setTransformationMethod(PasswordTransformationMethod.getInstance());
visibilityButton.setImageResource(R.drawable.nosee);
} else {
// 设置密码可见
passwordEditText.setTransformationMethod(null);
visibilityButton.setImageResource(R.drawable.see);
}
// 移动光标到文本末尾
passwordEditText.setSelection(passwordEditText.getText().length());
// 更新密码可见状态
isPasswordVisible = !isPasswordVisible;
}
}
最后运行的效果如下:
标签:passwordEditText,private,密码,AndroidStudio,可见,visibilityButton,isPasswordVisible From: https://blog.51cto.com/u_16174658/8853503