首页 / ANDROID / Android自定义倒计时控件
Android自定义倒计时控件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android自定义倒计时控件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2026字,纯文字阅读大概需要3分钟。
内容图文
序:
最近越来越多的APP都是用手机号注册,一是为了方便用户记忆,二是为了增加用户账户的安全性。在我们进行交易操作或者修改密码等操作的时候,这时候需要输入短信验证码。这个控件会需要有倒计时的功能,这里主要总结常见的几种实现方式。
1.Android中实现倒计时的方法
第一种:直接用Handler的消息机制来实现
这种方式感觉是最原始的,这里不多说。
第二种:Timer和TimerTask
基本使用:获得Timer和TimerTask对象,然后启动,倒计时的逻辑写在handler里面
private Timer mTimer=new Timer();
private TimerTask mTimerTask= new TimerTask() {
@Override
public void run() {
mHandler.sendEmptyMessage(COUNTTIME);
}
};
// 倒计时任务启动
mTimer.schedule(mTimerTask, 0, mOnetime);
这里要注意资源的释放:在适当的地方清空资源
/*** 清除时间*/
private void clearTimer() {
if (mTimerTask != null) {
mTimerTask.cancel();
mTimerTask = null;
}
if (mTimer != null) {
mTimer.cancel();
mTimer = null;
}
}
第三种:直接使用Android自带的原生倒计时类(也是利用Handler来实现的)
btnGetVerificationCode.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 这个是原生的倒计时类,第一个参数是总毫秒数,第二个是倒计时的毫秒数。
new CountDownTimer(10000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
// 倒计时中的方法
btnGetVerificationCode.setEnabled(false);
btnGetVerificationCode.setText(millisUntilFinished / 1000 + "秒");
}
@Override
public void onFinish() {
// 倒计时结束后的方法
btnGetVerificationCode.setEnabled(true);
btnGetVerificationCode.setText("重复获取验证码");
}
}.start();// 开始倒计时的方法
}
});
这种方式,看起来是最简单的,可是有几个明显的缺陷:
1.倒计时一开始显示的秒数可能不准确
2.倒计时的过程中可能丢失一秒
3.倒计时的最后显示“1秒”,然后会卡顿1秒,并不是所期望的0秒。卡顿1秒以后才显示。
2.商城倒计时库
这里推荐一个github上的商品倒计时库:商品倒计时库
3.自定义的倒计时控件
为了简化倒计时控件的使用,参考商品倒计时库,编写了一个自定义控件。效果如下
具体的实现原理是:继承TextView,重新onTouch()方法,使用Timer来进行倒计时。
4.自定义倒计时控件基本使用
第一步:在布局中添加该控件:
<android:id="@+id/MSGCTV"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content"
android:padding="16dp"/>
第二步:在合适的地方加入
msgCountTimeView.isAllowRun(true);//允许开始倒计时
部分API的说明
countTimeView.setTotaltime(10000);//设置总时间,单位是毫秒
setInittext("")//设置初始化的文字
setPrefixRuntext("代码剩余时间")//设置运行时的文字的前缀
setSuffixRuntext("")//设置运行时的文字的后缀
setFinishtext("代码重新获取")//设置结束后的文字
setTimeColor(color.blueLight);//设置运行时秒数的颜色
5.源码地址
原文:http://blog.csdn.net/android_yh/article/details/51371621
内容总结
以上是互联网集市为您收集整理的Android自定义倒计时控件全部内容,希望文章能够帮你解决Android自定义倒计时控件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。