倒计时和计时在比赛中经常用到,由于涉及到子线程和主线程的通信问题,同学们在制作的时候总有点畏手畏脚的,今天会有两个神器出现,帮助大家攻克这两道难关!
神器一:chronometer --andrdoid 控件的一种,自带监听方法,使用前需要将该控件设置在xml配置文件里
神奇二:CountDownTimer---代码控制的倒计时,只需要调用textview显示即可
==================================================================
【计时】:
一切从简单开始,首先制作计时功能:
拖动该控件到graph页面上,xml文档如下:
<TextView android:id="@+id/ctdtxt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:textSize="40dp" android:layout_gravity="center" android:text="" /> <Chronometer android:id="@+id/chronometer1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Chronometer" android:textSize="80dp" />
一个textview用来显示,下面就是带的计时器了,接下来就是代码大显身手的时候
主Activity
private class OnChronometer implements OnChronometerTickListener{ @Override public void onChronometerTick(Chronometer arg0) { // TODO Auto-generated method stub String time=clock.getText().toString().replaceAll("[^(\\d{2}:\\d{2})]", ""); if((hour+":"+minute).equals(time)){ GameStart.this.vibrator.vibrate(new long[]{1000, 10,1000,100},0);//设置震动周期以及循环震动 } } }
private class StartListener implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub GameStart.this.clock.setBase(SystemClock.elapsedRealtime()-recordTime);// GameStart.this.clock.start();//开始计时 } private class StopListener implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub GameStart.this.clock.stop();//停止计时 GameStart.this.vibrator.cancel();//取消震动 recordTime=SystemClock.elapsedRealtime()-clock.getBase(); } } private class BaseListener implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub recordTime=0;//重置时间 GameStart.this.clock.setBase(SystemClock.elapsedRealtime());//复位 } }
计时功能完成
效果如图:
========================================================
【倒计时】:
采用一个CountDownTimer
同样准备一个textview用于显示
代码如下:
public void initCountDownTimer(long millisInFuture){ timer = new CountDownTimer(millisInFuture, 1000) { @Override public void onTick(long millisUntilFinished) { // TODO Auto-generated method stub lefttime=millisUntilFinished; cdtxt.setText(millisUntilFinished/1000/60+":"+millisUntilFinished/1000%60); } @Override public void onFinish() { cdtxt.setText("00:00"); } }; }
开始倒计时后,只有暂停功能
private class StartListener implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub if(timer!=null){ Toast.makeText(getBaseContext(),lefttime+"", 100).show(); timer.start(); start.setVisibility(View.GONE); //设置开始按钮隐藏 } } } private class StopListener implements OnClickListener{ @Override public void onClick(View arg0) { // TODO Auto-generated method stub if(timer!=null&&!isPause){ Toast.makeText(getBaseContext(),"pause", 100).show(); isPause=true; timer.cancel(); } else if(lefttime!=0){ Toast.makeText(getBaseContext(),"continue", 100).show(); initCountDownTimer(lefttime); timer.start(); isPause=false; } } }
实现效果如下:
相关推荐
Android计时器实现
Android开发小功能,倒计时的实现。时间计时器倒计时功能。
Android RecycleView全部item倒计时的高效实现
附带三种计时器实现,第三种是最好的。前两种是调研的中间结果,直到发现第三种。
Android应用源码之带暂停功能倒计时TimeCountDown盒子适用
Android倒计时 Android仿京东倒计时 Android商城倒计时 博客地址 http://blog.csdn.net/yu_blog/article/details/70257211
实现开始计时和开始倒计时,暂停,开始,重置
用Android Studio编写的有时分秒的计时器,按钮“开始”和“停止”
简易计时器,含开始、暂停、清零三个功能按钮
一个很简单计时器实现,只有开始和结束按键,以及显示秒。需要用可以下载,根据自已项目随便改就适用。
Android倒计时器,支持开始倒计时、暂停倒计时、继续倒计时、停止倒计时、重新倒计时
篮球三十秒 计时电路倒计时器设计报告.pdf篮球三十秒 计时电路倒计时器设计报告.pdf篮球三十秒 计时电路倒计时器设计报告.pdf篮球三十秒 计时电路倒计时器设计报告.pdf篮球三十秒 计时电路倒计时器设计报告.pdf篮球...
本项目包含2个按键和4位数码管显示,要求共同实现一个篮球24秒的倒计时,并具有暂停和重新计数复位的功能。 案例补充说明 与单片机等实现模式相比,FPGA倒计时系统大大简化,整体性能和可靠性得到提高。在篮球24秒倒...
android项目 android 秒表 android计时器
Android常用实现倒计时方式:CountDownTimer控件使用,子线程更新,自定义Button控件
用kotlin实现的纯粹倒计时应用
android计时器(可开始/暂停/播放/停止),简单的计时器工具类;
用于比赛计时、倒计时。倒计时器用于面向参会人员全屏显示倒计时。应用场合:干部述职、竞聘演讲、辩论赛等计时。
一款很简单易用的倒计时软件,多达5组...桌面定时器 倒计时器 演讲倒计时 带记忆 可复位 5组可调用。带记忆很方便,可复位,可暂停。倒计时过程中可以设置5个提示时段。刷单等,我用最好的定时器,带声音带振屏提示。
倒计时计时器.fla 这是一个flash的倒计时计时器 简单 一个倒计时的表