0
点赞
收藏
分享

微信扫一扫

AndroidStudio设置密码可见不可见

这里我们写一个在登录demo中常见的功能,当点击眼睛图片时,使密码可见或不可见,即形成一种保护,也防止了我们输入错误密码情况的出现,是很友好的一个功能。

两张图片:

睁眼:

AndroidStudio设置密码可见不可见_密码可见不可见

闭眼:

AndroidStudio设置密码可见不可见_密码可见不可见_02

大家记得复制粘贴到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;
    }
}

最后运行的效果如下:

AndroidStudio设置密码可见不可见_android_03

举报

相关推荐

0 条评论