A custom EditText with a switchable icon which shows or hides the password

Min SDK   15
Latest Commit   2017-03-31 16:07:45
License   MIT

Github   https://github.com/maksim88/PasswordEditText

         

标签

使用APP客户端扫描二维码运行Demo


...

maksim88
eGym



         

类似的还有....
MaterialEditText EditText in Material Design
AnimatedEditText Androids EditText that animates the typed text. EditText is extended to create AnimatedEditText and a PinEntryEditText.
TagsEditText Android EditText for view tags or chips
README

README.md

Android Arsenal Download

Deprecated

This library is deprecated now as there is an official way to use the password toggle with the TextInputLayout (inside the support library starting with version 24.2.0).

<android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:passwordToggleEnabled="true">

        <android.support.design.widget.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"/>
</android.support.design.widget.TextInputLayout

For more information check the official docs.

Password EditText

A simple extension to the standard Android EditText which shows an icon on the right side of the field and lets the user toggle the visibility of the password he puts in.

NOTE

Support-library versions 24.2.0 and upwards now have built-in functionality to show an eye icon and toggle password visibility (For more info see docs). You can nevertheless still use this lib, maybe because you want some of the features that the built-in approach does not have.

How does it look like?

alt tag

Usage

For a complete sample you can check out the sample project provided within.

In short: Just include the PasswordEditText instead of the standard EditText and you are good to go.

<com.maksim88.passwordedittext.PasswordEditText
            android:id="@+id/input_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:hint="Password" />

You can also wrap PasswordEditText inside a TextInputLayout to get a material design moving label on top:

<android.support.design.widget.TextInputLayout
        android:id="@+id/input_layout_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.maksim88.passwordedittext.PasswordEditText
            android:id="@+id/input_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:hint="Password" />
    </android.support.design.widget.TextInputLayout>

Note: be sure to include the design library to use TextInputLayout. (for more details see sample)

You can also use TextInputLayout to achieve an even prettier setError() dialog using setErrorEnabled(true) on the outer TextInputLayout and then calling setError() on it. This underlines the text and shows an error message underneath the text.

Customize

You can add your own custom icons which are shown on the right side of the EditText.

Do this by first adding the custom namespace to your root layout, e.g.:

<LinearLayout
    [...]
    xmlns:app="http://schemas.android.com/apk/res-auto"
    [...]>
</Linearlayout>

After that you can add the icons with the attributes app:pet_iconShow and app:pet_iconHide:

<com.maksim88.passwordedittext.PasswordEditText
    [...]
    app:pet_iconShow="@drawable/..."
    app:pet_iconHide="@drawable/..."
    [...]
/>

You can also set toggle the monospace Font inside the PasswordEditTexts with app:pet_nonMonospaceFont:

<com.maksim88.passwordedittext.PasswordEditText
    [...]
    app:pet_nonMonospaceFont="true"
    [...]
/>

Another customization is to just toggle the visibility of the password when the icon is hovered with app:pet_hoverShowsPw:

<com.maksim88.passwordedittext.PasswordEditText
    [...]
    app:pet_hoverShowsPw="true"
    [...]
/>

If you do not like the alpha, that is set to all the icons, you can disable it using app:pet_disableIconAlpha

NOTE: alpha values are taken from the material design guidelines (https://www.google.com/design/spec/components/text-fields.html#text-fields-password-input)

<com.maksim88.passwordedittext.PasswordEditText
    [...]
    app:pet_disableIconAlpha="true"
    [...]
/>

For a working example of the different customizations check out the activity_main.xml inside the sample project.

Download

The library is available from jcenter(), so all you need to do is include it in your apps build.gradle:

dependencies {
          compile 'com.maksim88:PasswordEditText:v0.9'
  }

Alternatively you can use jitpack.io: More info here: https://jitpack.io/#maksim88/PasswordEditText

Questions?

If you have any questions feel free to open a github issue with a 'question' label

License

Licensed under the MIT license. See LICENSE.