Android中獲取驗證碼倒計時

今天根據做了一個獲取短信驗證碼倒計時的功能,先上圖看看效果如下:


一開始準用handler來做,但是覺得太麻煩,所以就看了下Android的CountDownTimer倒計時,可以先來看看類說明


主要有兩個方法
onTick()每次間隔指定時間的回調
onFinish();//倒計時結束的回調

爲了能讓自己使用起來不麻煩所以就重新自定義了一下

import android.graphics.Color;
import android.os.CountDownTimer;
import android.widget.TextView;

import com.tanlian.carstaff.R;

/**
 * @CreateDate: 2020/4/9
 * @Author:lp
 * @Description:
 */
public class TimeCount extends CountDownTimer {

    private TextView textView;

    /**
     *
     * @param textView 顯示的控件
     * @param millisInFuture 總時長
     * @param countDownInterval 時間間隔
     */
    public TimeCount(TextView textView, long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
        this.textView = textView;
    }

    /**
     * 計時過程顯示
     * @param millisUntilFinished
     */
    @Override
    public void onTick(long millisUntilFinished) {
        String time = millisUntilFinished / 1000 + "s後重發";
        setButtonInfo(time, false);
    }

    /**
     * 計時完畢
     */
    @Override
    public void onFinish() {
        setButtonInfo("獲取驗證碼", true);
    }

    /**
     * 驗證按鈕在點擊前後相關設置
     *
     * @param content 要顯示的內容
     * @param isClick 是否可點擊
     */
    private void setButtonInfo(String content, boolean isClick) {
        textView.setText(content);
        if (isClick) {
            textView.setTextColor(Color.parseColor("#FC3D42"));
            textView.setBackgroundResource(R.drawable.bg_red_stroke_r11);
        } else {
            textView.setTextColor(Color.parseColor("#666666"));
            textView.setBackgroundResource(R.drawable.bg_e8e8_r13);
        }

        textView.setClickable(isClick);
    }
}

上面的兩個背景圖都是自定義的圓角圖片,這裏就不上傳浪費篇幅了
在activity中的使用

 protected void initView() {
    TimeCount timeCount = new TimeCount(verificationBtn, 60000, 1000);
    verificationBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                timeCount.start();
            }
        });
 }


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章