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

 更新时间:2019年12月25日 17:22:55   作者:gogo_wei  
这篇文章主要为大家详细介绍了Android自定义控件实现短信验证码自动填充,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

VerifyCodeView

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

项目地址:VerifyCodeView

在项目中引入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);

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

相关文章

  • Android多渠道打包神器ProductFlavor详解

    Android多渠道打包神器ProductFlavor详解

    最近一直在学习Android Gradle 相关的知识点,今天刚好看到了 ProductFlavor 这节,ProductFlavor 的出现非常友好的帮助我们开发者解决了版本区分的问题
    2022-07-07
  • mui.init()与mui.plusReady()区别和关系

    mui.init()与mui.plusReady()区别和关系

    给大家分享一下在使用MUI进行APP开发的时候,mui.init()与mui.plusReady()区别以及使用上不同之处。
    2017-11-11
  • android编程实现添加文本内容到sqlite表中的方法

    android编程实现添加文本内容到sqlite表中的方法

    这篇文章主要介绍了android编程实现添加文本内容到sqlite表中的方法,结合实例较为详细的分析了Android针对txt文本文件的读取及SQL数据库操作的相关技巧,需要的朋友可以参考下
    2015-11-11
  • Android模仿实现微博详情页滑动固定顶部栏的效果实例

    Android模仿实现微博详情页滑动固定顶部栏的效果实例

    这篇文章主要给大家介绍了关于利用Android模仿实现微博详情页滑动固定顶部栏效果的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
    2017-11-11
  • Flutter学习之实现自定义themes详解

    Flutter学习之实现自定义themes详解

    一般情况下我们在flutter中搭建的app基本上都是用的是MaterialApp这种设计模式,MaterialApp中为我们接下来使用的按钮,菜单等提供了统一的样式,那么这种样式能不能进行修改或者自定义呢?答案是肯定的,一起来看看吧
    2023-03-03
  • Android 状态栏的设置适配问题详解

    Android 状态栏的设置适配问题详解

    这篇文章主要介绍了Android 状态栏的设置适配问题详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • Flutter实现底部和顶部导航栏

    Flutter实现底部和顶部导航栏

    这篇文章主要为大家详细介绍了Flutter实现底部和顶部导航栏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • Android编程之光线传感器用法详解

    Android编程之光线传感器用法详解

    这篇文章主要介绍了Android编程之光线传感器用法,结合实例形式分析了Android光线传感器的功能、实现步骤与相关注意事项,并给出了相关demo示例,需要的朋友可以参考下
    2017-11-11
  • Android仿淘宝预订日历(18)

    Android仿淘宝预订日历(18)

    这篇文章主要为大家详细介绍了Android仿淘宝预订日历的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 手写android布局示例

    手写android布局示例

    这篇文章主要介绍了手写android布局示例,需要的朋友可以参考下
    2014-02-02

最新评论