android studio用mageview控件实现密码可见性切换按钮,如小眼睛图标
时间: 2024-09-21 10:13:44 浏览: 125
Android Studio多个按钮跳转多个页面,利用选项卡功能实现
5星 · 资源好评率100%
在Android Studio中,你可以使用`ImageView`控件配合`TextView`来实现密码可见性切换的功能,通常会通过一个小眼睛(Eye)图标来表示密码是否隐藏。以下是基本步骤:
1. 首先,在布局文件(XML)中创建一个`ImageView`,设置资源ID,例如`iv_password_toggle`,并关联一个默认的眼睛图标(通常是关闭状态,即密码隐藏):
```xml
<ImageView
android:id="@+id/iv_password_toggle"
android:src="@drawable/ic_eye_closed"
android:tint="?attr/colorPrimary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp" />
```
2. 创建一个`TextView`用于显示密码输入框,添加点击事件监听器:
```xml
<TextView
android:id="@+id/tv_password"
android:inputType="textVisiblePassword|textNoSuggestions"
android:scrollbars="none"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:onClick="togglePasswordVisibility" />
```
3. 在Activity或Fragment的Java/Kotlin代码中,添加`togglePasswordVisibility()`方法,处理点击事件,根据当前状态改变`TextView`的输入类型和`ImageView`的源:
```kotlin
fun togglePasswordVisibility(view: View) {
val toggleView = view.findViewById<ImageView>(R.id.iv_password_toggle)
val passwordView = view.findViewById<TextView>(R.id.tv_password)
if (passwordView.inputType == InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD) {
toggleView.setImageResource(R.drawable.ic_eye_open)
passwordView.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_Variation_PASSWORD
} else {
toggleView.setImageResource(R.drawable.ic_eye_closed)
passwordView.inputType = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
}
}
```
阅读全文