Android Passcode Keypad View

Additional

Language
Java
Version
v1.2.1 (Jan 16, 2017)
Created
Aug 3, 2016
Updated
Jun 7, 2019 (Retired)
Owner
Arjun (Arjun-sna)
Contributor
Hamed Momeni (2hamed)
1
Activity
Badge
Generate
Download
Source code

Android Passcode Keypad View

A custom view with keyboard and character display to be used for authentication.

The view has a bunch customisation options to make to look and work the way whichever needed.

Demo

Installation

Add gradle dependency

repositories {
    jcenter()
}
dependencies {
    compile 'in.arjsna:passcodeview:1.2.1'
}

Usage

Add the view in the layout file

<in.arjsna.lib.PassCodeView
   android:id="@+id/pass_code_view"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   app:digits="4"
   app:digit_size="30.0dp"
   app:key_text_size="30.0sp"
   android:padding="25.0dp"
   app:empty_drawable="@drawable/empty_dot"
   app:filled_drawable="@drawable/filled_dot"/>

View attributes that can be included in xml are

digits - number of digits in passcode

filled_drawable - drawable to be show for filled digits

empty_drawable - drawable to be show for empty digits

key_text_size - size of text in keyboard's key

digit_spacing - horizontal space between each digit

digit_vertical_padding - vertical padding of digits

divider_visible - boolean to show or hide divider between digits and keyboard

Other customisations options available are

PassCodeView passCodeView = (PassCodeView) findViewById(R.id.pass_code_view);
Typeface typeFace = Typeface.createFromAsset(getAssets(), "fonts/Font-Bold.ttf");

/**
 *Set TypeFace for the font in keys of keypad
 */
passCodeView.setTypeFace(typeFace);

/**
 * Set color for the keypad text
 * @param color - Resource id of the color to be set
 */
passCodeView.setKeyTextColor(getResources.getColor(R.color.black));

/**
 * Set size of keypad text
 * @param size - Text size value to be set
 */
passCodeView.setKeyTextSize(30);

/**
 * Set passcode digit lenght
 * @param length - digit length to be set
 */
passCodeView.setDigitLength(6);


/**
 * Set current passcode text
 * @param code - {@code String} passcode string to be set
 */
public void setPassCode("8854")

/**
 * Reset the code to empty
 */
passCodeView.reset();

/**
 * Set drawable for empty digits programmatically
 */
 passCodeView.setEmptyDrawable(R.drawable.empty);

/**
 * Set drawable for filled digits programmatically
 */
 passCodeView.setFilledDrawable(R.drawable.filled);

/**
 * Attach {@code TextChangeListener} to get notified on text changes
 * @param listener - {@Code TextChangeListener} object to be attached and notified
 */
passCodeView.setOnTextChangeListener(new PassCodeView.TextChangeListener() {
            @Override
            public void onTextChanged(String text) {
                Log.i("Passcode", "text");
            }
        });