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

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

DigitalTimer简介

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

运行效果图

运行效果图数字计时器

XML Attributes

Attribute RelatedRelated MethodDescription
app:textColorsetBaseTime(long baseTime)设置基准时间
app:textBgRessetTextBgRes(int textBgRes)设置文字背景
app:textSizeetTextSize(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()方法来进行计时。





  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值