在Android中使用可绘制的图标显示和隐藏密码,可以通过以下步骤实现:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/passwordEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />
<ImageView
android:id="@+id/showHidePasswordImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/passwordEditText"
android:layout_alignEnd="@id/passwordEditText"
android:padding="8dp"
android:src="@drawable/ic_password_hide" />
</RelativeLayout>
EditText passwordEditText = findViewById(R.id.passwordEditText);
ImageView showHidePasswordImageView = findViewById(R.id.showHidePasswordImageView);
showHidePasswordImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (passwordEditText.getInputType() == InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD) {
passwordEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
showHidePasswordImageView.setImageResource(R.drawable.ic_password_hide);
} else {
passwordEditText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
showHidePasswordImageView.setImageResource(R.drawable.ic_password_show);
}
passwordEditText.setSelection(passwordEditText.getText().length()); // 保持光标在末尾
}
});
ic_password_hide.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_password_hide_enabled" android:state_enabled="true" />
<item android:drawable="@drawable/ic_password_hide_disabled" android:state_enabled="false" />
</selector>
ic_password_show.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_password_show_enabled" android:state_enabled="true" />
<item android:drawable="@drawable/ic_password_show_disabled" android:state_enabled="false" />
</selector>
以上代码中,分别使用了ic_password_hide_enabled、ic_password_hide_disabled、ic_password_show_enabled和ic_password_show_disabled作为图标资源文件,你可以根据自己的需求替换这些资源文件。
这样,当用户点击密码输入框右侧的图标时,密码的可见性将会切换,并且图标也会相应地改变。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云