最近在做注冊(cè)登錄模塊菌湃,里面發(fā)送驗(yàn)證碼后问拘,會(huì)有一個(gè)60秒計(jì)時(shí)后點(diǎn)擊重新發(fā)送的按鈕【逅看了同事之前實(shí)現(xiàn)類似功能是使用CountDownTimer來計(jì)時(shí)的骤坐,之前沒用過這個(gè)類,了解了一下還是挺簡(jiǎn)單的下愈。但是邏輯全放在了外面或油,秉著高內(nèi)聚、低耦合的思想驰唬,打算小小封裝一個(gè)控件,使外層的調(diào)用盡量簡(jiǎn)潔腔彰,剛好最近又看到了TextSwitcher實(shí)現(xiàn)文字切換添加動(dòng)畫的效果叫编,于是打算將他們結(jié)合使用一下,CountDownTextView便應(yīng)運(yùn)而生..
效果圖
廢話不多說霹抛,先上圖為敬
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="點(diǎn)擊發(fā)送"
magical:total_time="40" />
3.可用方法
開始計(jì)時(shí)調(diào)用 start() 方法
失敗或手動(dòng)取消調(diào)用 cancel()方法
重置為初始狀態(tài)調(diào)用 reset()方法
4.設(shè)置重發(fā)事件監(jiān)聽
mBtnNormal.setResendListener(new CountDownTextView.onReSend() {
@Override
public void onResend(View view) {
//計(jì)時(shí)結(jié)束后 點(diǎn)擊事件回調(diào)
}
});