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