如何反转密码眼睛图标?

时间:2017-02-14 13:22:48

标签: android material-design

enter image description here

编辑文本中的上述眼睛图标在键入密码时以相反的顺序显示,密码眼图标在密码不可见时是盲目的。  如何反转它

感谢,

<span ng-show="forgotPasswordForm.EmailAddress.$error.required" class="help-block">
     Email is required
</span>

3 个答案:

答案 0 :(得分:1)

您必须先点击两个drawable,然后在点击按钮或下面的任何其他事件时动态更改drawable图片,您可以在drawable中设置EditText,如下所示:< / p>

Drawable img = getContext().getResources().getDrawable( R.drawable.smiley );
editText.setCompoundDrawablesWithIntrinsicBounds( null, null, img, null);

答案 1 :(得分:1)

“材料成分”从 1.2.0-beta01 开始,这是默认行为:

enter image description here enter image description here

使用以前的版本,您可以执行以下操作:

<com.google.android.material.textfield.TextInputLayout
    app:endIconDrawable="@drawable/custom_password_eye"
    ..>

其中custom_password_eye.xml是:

<animated-selector xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="NewApi">

    <item
        android:id="@+id/visible"
        android:drawable="@drawable/design_ic_visibility_off"
        android:state_checked="true"/>

    <item
        android:id="@+id/masked"
        android:drawable="@drawable/design_ic_visibility"/>

    <transition
        android:drawable="@drawable/avd_hide_password"
        android:fromId="@id/masked"
        android:toId="@id/visible"/>

    <transition
        android:drawable="@drawable/avd_show_password"
        android:fromId="@id/visible"
        android:toId="@id/masked"/>

</animated-selector>

答案 2 :(得分:-1)

最新答案。
Probably, google decided to indicate state button instead of action button
因此,如果需要操作按钮,则只需使用xml布局即可自定义图标可绘制,而无需以编程方式进行更改。
将此添加到TextInputLayout:

app:passwordToggleDrawable="@drawable/eye_password"

或在使用material:1.1.0或更高版本时添加此

app:endIconDrawable="@drawable/eye_password"

然后为eye_password创建新的可绘制对象:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_eye_close" android:state_checked="true"/>
    <item android:drawable="@drawable/ic_eye_open"/>
</selector>

ic_eye_open的可绘制对象:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M12,4.5C7,4.5 2.73,7.61 1,12c1.73,4.39 6,7.5 11,7.5s9.27,-3.11 11,-7.5c-1.73,-4.39 -6,-7.5 -11,-7.5zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3 3,-1.34 3,-3 -1.34,-3 -3,-3z"/>
</vector>

ic_eye_close的可绘制对象:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">
    <path
        android:fillColor="#FF000000"
        android:pathData="M12,7c2.76,0 5,2.24 5,5 0,0.65 -0.13,1.26 -0.36,1.83l2.92,2.92c1.51,-1.26 2.7,-2.89 3.43,-4.75 -1.73,-4.39 -6,-7.5 -11,-7.5 -1.4,0 -2.74,0.25 -3.98,0.7l2.16,2.16C10.74,7.13 11.35,7 12,7zM2,4.27l2.28,2.28 0.46,0.46C3.08,8.3 1.78,10.02 1,12c1.73,4.39 6,7.5 11,7.5 1.55,0 3.03,-0.3 4.38,-0.84l0.42,0.42L19.73,22 21,20.73 3.27,3 2,4.27zM7.53,9.8l1.55,1.55c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.66 1.34,3 3,3 0.22,0 0.44,-0.03 0.65,-0.08l1.55,1.55c-0.67,0.33 -1.41,0.53 -2.2,0.53 -2.76,0 -5,-2.24 -5,-5 0,-0.79 0.2,-1.53 0.53,-2.2zM11.84,9.02l3.15,3.15 0.02,-0.16c0,-1.66 -1.34,-3 -3,-3l-0.17,0.01z"/>
</vector>