组件类--发送验证码倒计时

一、使用步骤

1、在module中引入

implementation 'com.tgcity.widget:VerificationCode:1.0.0' 或 implementation 'com.tgcity.widget:VerificationCode:latest.release' 

2、在您项目对应的xml文件中引入控件

因为VerificationCodeView是继承AppCompatTextView,所以您可以当成AppCompatTextView来使用,可以正常设置字体大小,控件宽高、内间距等。

<com.tgcity.smsdemo.VerificationCodeView                               

android:id="@+id/verificationCode"                                             

android:layout_width="120dp"                                                       

android:layout_height="40dp"                                                         

android:background="#fff"                                                                               

android:gravity="center"                                                           

app:vc_click_col="#ff00"                                                                     

app:vc_click_msg="s重发"                                                                            

 app:vc_duration="10"                                                                   

app:vc_un_click_col="#ff0"                                                           

app:vc_un_click_msg="发送验证码" />

3、代码使用

//初始化对象                                                                                 

VerificationCodeView verificationCode = findViewById(R.id.verificationCode);           

//设置总时间                                                                         

verificationCode.setDuration(60);                                                                                   

//开始倒计时                                                                       

verificationCode.startCountdown();                                                                               

//设置回调                                                                                     

verificationCode.setListener(new VerificationCodeView.CountdownInterface() {                 

@Override public void onCountdownFinish() {                                                                         

//处理完成业务                                                                                                 

}});

二、源码分析

1、实现的具体需求如下:①、默认文案是“发送验证码” 默认颜色蓝色;②、发送过程中的文案“xxs后重新发送” 字体颜色 666; ③、开放 获取组件状态方法;④、开放 设置初始倒计时时长方法;⑤、开放 倒计时结束后的回调接口;⑥、开放 结束倒计时的方法;⑦、结束后文案和字体初始化

2、CountDownTimer类源于系统的android.os.CountDownTimer文件,此处将mMillisInFuture针对对象进行变量处理,为了保证用户可以自由设置倒计时总时间

3、针对attrs下的属性进行说明:①vc_un_click_msg:初始化的文案;②vc_un_click_col:初始化的颜色;③vc_click_msg:倒计时的文案;④vc_click_col:倒计时的颜色;⑤vc_duration:倒计时的时长

4、针对总时间“+100”进行说明,主要是在测试过程中发现倒计时的时间间隔并非严格意义的1000ms,而在毫秒转秒的过程中会对其进行取整处理,此时会影响秒数的正常显示,故做此处理

三、浏览地址

1、github源码地址

2、jcenter依赖引入地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值