VerificationCodeView

Introduction: Android 自定义方形输入框,仿滴滴验证码输入框
More: Author   ReportBugs   
Tags:

Android 自定义方形输入框,仿滴滴验证码、小篮单车验证码输入框


V1.0.1 版 效果图

Screenshot

监听

public interface OnCodeFinishListener {
        /**
         * 文本改变
         */
        void onTextChange(View view, String content);

        /**
         * 输入完成
         */
        void onComplete(View view, String content);
    }

attr

    <!-- 自定义验证码输入框-->
    <declare-styleable name="vericationCodeView">
        <!--输入框的数量-->
        <attr name="vcv_et_number" format="integer" />
        <!--输入类型-->
        <attr name="vcv_et_inputType">
            <enum name="number" value="0" />
            <enum name="numberPassword" value="1" />
            <enum name="text" value="2" />
            <enum name="textPassword" value="3" />
        </attr>
        <!--输入框的宽度-->
        <attr name="vcv_et_width" format="dimension|reference" />
        <!--输入框文字颜色-->
        <attr name="vcv_et_text_color" format="color|reference" />
        <!--输入框文字大小-->
        <attr name="vcv_et_text_size" format="dimension|reference" />
        <!--输入框背景-->
        <attr name="vcv_et_bg" format="reference" />
        <!--光标样式-->
        <attr name="vcv_et_cursor" format="reference" />
        <!--是否隐藏光标-->
        <attr name="vcv_et_cursor_visible" format="boolean" />
        <!--输入框间距,如果不设置则会把输入框位置平分-->
        <attr name="vcv_et_spacing" format="dimension|reference" />

    </declare-styleable>

Gradle

Step 1. Add it in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Step 2. Add the dependency

dependencies {
     compile 'com.jyn.verificationcodeview:verificationcodeview:1.0.1'
}

用法

   <com.jyn.vcview.VerificationCodeView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:gravity="center"
        android:orientation="horizontal"
        app:vcv_et_bg="@drawable/et_code_test1"
        app:vcv_et_cursor="@drawable/et_cursor"
        app:vcv_et_cursor_visible="false"
        app:vcv_et_inputType="numberPassword"
        app:vcv_et_number="6"
        app:vcv_et_spacing="6dp"
        app:vcv_et_text_color="#FFC107"
        app:vcv_et_text_size="6sp" />

vcv_et_bg 背景示例(默认)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_window_focused="false">
        <shape android:shape="rectangle">
            <solid android:color="#FFFFFF" />
            <stroke android:width="1dp" android:color="#C4C4C4" />
            <corners android:radius="5dp" />
        </shape>
    </item>

    <item android:state_focused="true">
        <shape android:shape="rectangle">
            <solid android:color="#ffffff" />
            <stroke android:width="1dp" android:color="#0dbc75" />
            <corners android:radius="5dp" />
        </shape>
    </item>
</selector>

vcv_et_cursor 光标示例(默认)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <size android:width="2dp" />
    <solid android:color="#0dbc75" />
</shape>

备注:V1.0.0 版在 branch - V1.0.0

开发思路

简书:http://www.jianshu.com/p/781950fe5e73
CSDN:http://blog.csdn.net/jiaoyaning1210/article/details/78427818


如果对您有帮助的话,还请给个star,谢谢!


Apps
About Me
Google+: Trinea trinea
GitHub: Trinea