您的位置:首页 > 移动开发 > Android开发

Android 4.0以上简单实现倒计时按钮

2015-08-13 14:50 465 查看
前几天需求要做一个倒计时的按钮。网上找了一堆,都是没有关键部分的代码,看的人也云里雾里的,索性自己写一个。因为是现在只考虑4.0以上的系统,后来干脆想到通过ValueAnimator 去实现,代码相当简洁。就直接上核心代码,继承自Button按钮。

public class CountDownButton extends Button {

public CountDownButton(Context context) {

super(context);

}

public CountDownButton(Context context, AttributeSet attrs) {

super(context, attrs);

}

public CountDownButton(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

}

public void startCountDown(int Time, final String title) {

ValueAnimator animator = ValueAnimator.ofInt(Time, 0);

animator.setInterpolator(new LinearInterpolator());

animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

Integer integer = (Integer) animation.getAnimatedValue();

setText(String.valueOf(integer) + title);

if (integer == 0 && null != countFinish) {

countFinish.onFinish();

}

}

});

animator.setDuration(Time * 1000);

animator.start();

}

private CountFinish countFinish;

public void setCountFinish(CountFinish countFinish) {

this.countFinish = countFinish;

}

/**

*

* CopyRight (c)2015:

*

* @ClassName: CountFinish

* @Description: 倒计时结束时会触发的回调接口

* @author Hankun

* @date 2015年7月7日 下午5:49:35

*

*/

public interface CountFinish {

/**

*

* @Title: onFinish

* @Description: 倒计时结束时回调该方法

*

* @return void

*

*/

void onFinish();

}

代码相当简单,继承自Button 方便使用,startCountDown 在这里设置显示的内容和 倒计时的时间,setCountFinish 这里倒计时完成后会调用。使用起来非常方便。如果在倒计时的阶段不允许点击,只要设置一个boolean变量去控制下事件的触发就可以,相当便捷
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: