Android 自定义验证码输入框的实例代码(支持粘贴连续性)
需求
1、能自定义输入框个数和样式
2、支持长按粘贴或剪切板内容自动填充(粘贴连续性)
其中第2点是最为重要的,正是其他人没有这点,逼得自己弄一个
示例
别人的示例:
粘贴居然不支持连续性,只能粘贴第一个字符,所以用的有点难受
自己的示例:
原理
大致是edittext + n* textview,然后设置edittext字体跟背景颜色都为透明,隐藏光标
edittext:监听edittext每次输入一个字符就赋值到对应的textview上,然后在清空自己
下划线:在textview下面添加view
光标:这里的每个textview的焦点光标其实对view设置了valueanimator
粘贴:粘贴弹窗是自定义的popupwindow
源码有详细注释,这里就不一一说明
github
https://github.com/wshaobin/verificationcodeinputview
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 { implementation 'com.github.wshaobin:verificationcodeinputview:1.0.2' }
how to use
in layout
<com.wynsbin.vciv.verificationcodeinputview android:id="@+id/vciv_code" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margintop="48dp" android:gravity="center" android:orientation="horizontal" app:vciv_et_background="@android:color/white" app:vciv_et_foucs_background="@android:color/holo_orange_dark" app:vciv_et_cursor_color="@color/colorprimary" app:vciv_et_height="58dp" app:vciv_et_inputtype="number" app:vciv_et_number="6" app:vciv_et_text_color="@android:color/black" app:vciv_et_text_size="18sp" app:vciv_et_underline_default_color="@android:color/holo_green_dark" app:vciv_et_underline_focus_color="@android:color/holo_blue_bright" app:vciv_et_underline_height="2dp" app:vciv_et_underline_show="true" app:vciv_et_width="58dp" />
in java code
verificationcodeinputview view = findviewbyid(r.id.vciv_code); view.setoninputlistener(new verificationcodeinputview.oninputlistener() { @override public void oncomplete(string code) { toast.maketext(mainactivity.this, code, toast.length_short).show(); } @override public void oninput() { } }); //清除验证码 view.clearcode();
attributes
vcinputtype
输入框背景色支持类型
1、@drawable/xxx
2、@color/xxx
3、#xxxxxx
总结
以上所述是小编给大家介绍的android 自定义验证码输入框的实例代码(支持粘贴连续性),希望对大家有所帮助
上一篇: 如何剥芒果更快更干净
下一篇: 葡萄干热量高不高呢