自定义控件Android开发Android知识

使用TextSwitcher和CountDownTimer实现简

2017-03-26  本文已影响133人  double_so3

最近在做注册登录模块,里面发送验证码后,会有一个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

上一篇下一篇

猜你喜欢

热点阅读