版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dhl_1986/article/details/82800775
登录界面中常用的密码框,我们会常常添加一个显示或隐藏密码的图标,在MD 的design 库:
implementation 'com.android.support:design:27.0.2'
控件:
android.support.design.widget.TextInputLayout
已经支持这个功能,只需要添加一个属性就可以:
app:passwordToggleEnabled="true"
全部布局如下:
<android.support.design.widget.TextInputLayout
android:textColorHint="#c5c5c5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
app:passwordToggleEnabled="true"
>
<android.support.design.widget.TextInputEditText
android:id="@+id/password"
android:textSize="20sp"
android:textColor="@color/colorPrimary"
android:drawableLeft="@mipmap/ic_password"
android:drawablePadding="5dp"
android:drawableStart="@mipmap/ic_password"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:paddingBottom="2dp"
/>
</android.support.design.widget.TextInputLayout>
这是系统自带的效果,但是往往我们需要自定义,这个时候需要换图:
drawable 下 selector : selector_password_show_or_hide
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/password_hide" android:state_checked="false" />
<item android:drawable="@mipmap/password_show" android:state_checked="true" />
</selector>
布局:
<android.support.design.widget.TextInputLayout
android:textColorHint="#c5c5c5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"
app:passwordToggleEnabled="true"
app:passwordToggleDrawable="@drawable/selector_password_show_or_hide"
>
<android.support.design.widget.TextInputEditText
android:id="@+id/password"
android:textSize="20sp"
android:textColor="@color/colorPrimary"
android:drawableLeft="@mipmap/ic_password"
android:drawablePadding="5dp"
android:drawableStart="@mipmap/ic_password"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:paddingBottom="2dp"
/>
</android.support.design.widget.TextInputLayout>
效果图:
图片自己网上找撒。