方法一:利用計時器動畫ValueAnimator
final ValueAnimator valueAnimator=ValueAnimator.ofInt(5,0);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animator) {
tv_text.setText((Integer) animator.getAnimatedValue()+"秒");
if ((Integer)animator.getAnimatedValue()==0){
tv_text.setText("靜");
valueAnimator.cancel();
}
}
});
valueAnimator.setDuration(1000*6);
//設置線性插值器(數據勻速變化)
valueAnimator.setInterpolator(new LinearInterpolator());
valueAnimator.start();
方法二:利用CountDownTimer 調用timer.start()開始執行
private int j =59;//秒
private CountDownTimer timer=new CountDownTimer(60*1000, 1000) {
@Override
public void onTick(long l) {
if (j >0) {
vification.setText(j +"秒後重新獲取");
j--;
}
}
@Override
public void onFinish() {
vification.setText("獲取驗證碼");
vification.setClickable(true);
timer.cancel();//取消
}
};