【Android UI设计】之自定义计时器

本博文所分享项目已开源,大家可以在https://github.com/crazycodeboy/DigitalTimer上下载

DigitalTimer简介

  • 在样式上DigitalTimer支持自定义文字背景,大小,颜色的自定义。
  • 在功能上DigitalTimer支持启动计时,计时暂停等功能。

运行效果图

技术分享技术分享

XML Attributes

Attribute Related Related Method Description
app:textColor setBaseTime(long baseTime) 设置基准时间
app:textBgRes setTextBgRes(int textBgRes) 设置文字背景
app:textSize etTextSize(float textSize) 设置文字大小

使用方法

  1. java public void setBaseTime(long baseTime)设置基准时间
  2. java public void start()开始计时。
  3. java public void stop()停止计时。
  4. 其它使用细节可以参照实例。

实现原理

为了实现每一秒刷新一次计时时间,本博文中分别使用了CountDownTimer方式和Handler+Runnable的方式来刷新时间,使用CountDownTimer的方式:
		countDownTimer=new CountDownTimer(999999999,1000) {
			@Override
			public void onTick(long millisUntilFinished) {
				changTime=System.currentTimeMillis()-baseTime+1000;
				reSetTime();
			}
			@Override
			public void onFinish() {
			}
		};
说明:这种方式利用了CountDownTimer类,该类会在指定的时间内回调onTick方法,从而实现计时的效果。
使用Handler+Runnable的方式:
private final Handler mHandler = new Handler();
	private final Runnable mTimeRefresher = new Runnable() {
		@Override
		public void run() {
			changTime+=1000;
			reSetTime();
			mHandler.postDelayed(this, REFRESH_DELAY);
		}
	};

说明:这种方式定义了一个任务该,该任务会在指定的时间里回调run()方法来进行计时。





郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。