方法一:利用计时器动画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();//取消
}
};