首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在android中使用可绘制的图标显示和隐藏密码

在Android中使用可绘制的图标显示和隐藏密码,可以通过以下步骤实现:

  1. 首先,在布局文件中添加一个EditText控件用于输入密码,并在其右侧添加一个ImageView控件用于切换密码可见性。示例代码如下:
代码语言:xml
复制
<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>
  1. 接下来,在Activity或Fragment中获取EditText和ImageView的实例,并设置点击事件监听器。示例代码如下:
代码语言:java
复制
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()); // 保持光标在末尾
    }
});
  1. 最后,为了显示和隐藏密码图标,需要准备两个可绘制的图标资源文件。在res/drawable目录下创建ic_password_hide.xml和ic_password_show.xml文件,并分别定义隐藏和显示密码的图标。示例代码如下:

ic_password_hide.xml:

代码语言: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:

代码语言: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作为图标资源文件,你可以根据自己的需求替换这些资源文件。

这样,当用户点击密码输入框右侧的图标时,密码的可见性将会切换,并且图标也会相应地改变。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券