欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android自定义控件实现短信验证码自动填充

程序员文章站 2022-03-14 10:47:15
verifycodeview verifycodeview是一个用于输入验证码的android自定义控件,它支持数字类型的验证码,支持自定义外观,并且支持短信验证码自动填充。 项目...

verifycodeview

verifycodeview是一个用于输入验证码的android自定义控件,它支持数字类型的验证码,支持自定义外观,并且支持短信验证码自动填充。

项目地址:verifycodeview

Android自定义控件实现短信验证码自动填充

Android自定义控件实现短信验证码自动填充

在项目中引入verifycodeview

gradle

dependencies {
 compile 'com.github.gongw:verifycodeview:1.0.2'
}

maven

<dependency>
 <groupid>com.github.gongw</groupid>
 <artifactid>verifycodeview</artifactid>
 <version>1.0.2</version>
 <type>pom</type>
</dependency>

支持的自定义属性

  • vctextcount - 验证码长度
  • vctextcolor - 验证码字体颜色
  • vctextsize - 验证码字体大小,单位sp
  • vctextfont - 验证码字体样式文件路径(assets中的路径)
  • vcdividerwidth - 每个验证码之间的间隔距离,单位dp
  • vcwrapper - 包裹验证码的外观样式
  • vcwrapperstrokewidth - 包裹验证码的外观的线条宽度,单位dp
  • vcwrappercolor - 包裹验证码的外观颜色
  • vcnextwrappercolor - 包裹将要被填充的验证码的外观颜色

使用示例

xml

<com.github.gongw.verifycodeview
 android:layout_width="240dp"
 android:layout_height="50dp"
 android:layout_margintop="42dp"
 app:vctextcolor="#b63b21"
 app:vctextcount="4"
 app:vctextsize="36sp"
 app:vcdividerwidth="8dp"
 app:vcwrapper="centerline"
 app:vcwrappercolor="#313335"
 app:vcnextwrappercolor="#b63b21"
 app:vcwrapperstrokewidth="2dp" />

java

verifycodeview.setonallfilledlistener(new verifycodeview.onallfilledlistener() {
  @override
  public void onallfilled(string text) {
   toast.maketext(mainactivity.this, "filled by "+text, toast.length_short).show();
  }
 });

自定义外观

verifycodeview.setvcwrapper(new verifycodewrapper() {
   @override
   public boolean iscovered() {
    //whether the wrapper and verify code display together
    return false;
   }

   @override
   public void drawwrapper(canvas canvas, paint paint, rectf rectf, rectf textrectf) {
 //draw your own wrapper
   canvas.drawline(textrectf.left - textrectf.width()/2, rectf.height()/2,   textrectf.right + textrectf.width() / 2, rectf.height()/2,   paint);
   }
  });

短信验证码自动填充

smsverifycodefilter filter = new smsverifycodefilter();
filter.setsmssenderstart("1096");
filter.setsmssendercontains("5225");
filter.setsmsbodystart("验证短信:");
filter.setsmsbodycontains("验证码");
filter.setverifycodecount(verifycodeview.getvctextcount());
verifycodeview.startlisten(filter);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。