使用TextSwitcher和CountDownTimer实现简单的倒计时控件

最近在做注册登录模块,里面发送验证码后,会有一个60秒计时后点击重新发送的按钮。看了同事之前实现类似功能是使用CountDownTimer来计时的,之前没用过这个类,了解了一下还是挺简单的。但是逻辑全放在了外面,秉着高内聚、低耦合的思想,打算小小封装一个控件,使外层的调用尽量简洁,刚好最近又看到了TextSwitcher实现文字切换添加动画的效果,于是打算将他们结合使用一下,CountDownTextView便应运而生..

效果图

废话不多说,先上图为敬

QQ图片20180101202853.gif

使用方法

1.添加jitpack 并添加依赖

root build.gradle:  
allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }  
  
your project:  
dependencies {
            compile 'com.github.magical-xu:CountDownTextView:v1.0.2'
    }

2.在XML文件中引用

<com.magicalxu.library.CountDownTextView
      android:id="@+id/id_button_yellow"
      android:layout_width="150dp"
      android:layout_height="50dp"
      android:layout_marginTop="20dp"
      magical:anim_in="@android:anim/slide_in_left"
      magical:anim_out="@android:anim/slide_out_right"
      magical:disable_background="@drawable/shape_bg_yellow_disable"
      magical:enable_background="@drawable/shape_bg_yellow_normal"
      magical:init_text="TextSwitcher"
      magical:text_color="@android:color/holo_red_light"
      magical:text_size="12sp"
      magical:tip_text="点击发送"
      magical:total_time="40" />

3.可用方法
开始计时调用 start() 方法
失败或手动取消调用 cancel()方法
重置为初始状态调用 reset()方法

4.设置重发事件监听

mBtnNormal.setResendListener(new CountDownTextView.onReSend() {
      @Override
      public void onResend(View view) {
        //计时结束后 点击事件回调
      }
});

源码地址

https://github.com/magical-xu/CountDownTextView

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,076评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,200评论 4 61
  • 对生命屈服有很多种,最可怕的是那种喜欢被奴役。 受害者深深坚信,自己快乐与否,成功与否掌握在他人手中。 每个人都是...
    韩鱼鱼阅读 193评论 0 0
  • 你走了 什么话也没有讲 我亦如往常 上课 学习 没有变样 看,陪着我的还是柯西 罗尔 佩亚诺余项 不就是电生磁 磁...
    喝了墨水不会喷的伪墨鱼阅读 213评论 0 0
  • 作者:雨 落日云丹,袅袅炊烟。望山崖、一片苍颜。鸟栖枯树,风乱栏杆。扰清茶苦,书中静,久坐禅。 泠泠小楼,慢挑七...
    随意诗社阅读 322评论 0 1