倒计时和计时在比赛中经常用到,由于涉及到子线程和主线程的通信问题,同学们在制作的时候总有点畏手畏脚的,今天会有两个神器出现,帮助大家攻克这两道难关!
神器一: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 Studio项目的结构。在这个项目的目录中,`gradlew.bat`是一个...
本示例提供的"Android简单计时器实现"是一个基本的计时器应用,它包含开始、停止功能,并能实时显示秒数。这个项目适合初学者学习和理解Android计时器的实现方式,也可以根据自己的需求进行修改以适应不同的项目需求...
本文将深入探讨如何在Android中实现计时器功能,主要以`HLQCountDownTimer`为例,这是一个自定义的倒计时计时器类。 ### 一、Android计时器基础 在Android中,有多种计时器实现方式,包括`java.util.Timer`、`...
通过学习和研究这个`TimeCountDown`源码,开发者不仅可以了解到如何在Android中实现一个具有暂停功能的倒计时,还可以从中学习到自定义组件、多线程编程以及异常处理等Android开发的重要技巧。这对于提升个人技能和...
在Android和Linux操作系统中,计时器是一种至关重要的机制,用于执行特定时间间隔的操作或触发时间相关的事件。本文将深入探讨三种不同的计时器实现,包括它们的工作原理、优缺点以及适用场景。 第一种计时器实现:...
在Android开发中,计时器(Timer)是一个非常常见的组件,用于实现各种定时任务,比如倒计时、游戏计时、动画间隔等。本资源提供了一个简单的Android计时器源码,包含了开始、暂停和重置功能,是学习Android计时器...
本项目"Android倒计时 Android仿京东倒计时 Android商城倒计时"正是针对这种需求而设计的,通过实现一个定制化的倒计时组件,开发者可以方便地在自己的应用中添加类似功能。 首先,`CountDownTimer`是Android SDK...
`CountDownTimer`类是Android提供的一个内置计时工具,它能从一个预设的总时间开始倒计时,并在每个时间间隔执行特定的代码块,直到计时结束。其构造函数接受两个参数:总毫秒数和间隔毫秒数。例如: ```java new ...
在IT行业中,计时器和倒计时器是常见的实用工具,尤其在组织各类活动或比赛中,它们扮演着至关重要的角色。"多功能计时器-倒计时器"这款应用程序,正如其标题所示,旨在提供一种高效且灵活的计时解决方案,适应多种...
在Android开发中,正计时和倒计时是常见的功能,比如用于游戏计时、定时提醒或者倒计时器应用。本教程将详细介绍如何在Android环境中实现这些功能,包括开始计时、开始倒计时、暂停、继续以及重置。 首先,我们需要...
在Android应用开发中,倒计时(CountDownTimer)是一个常用的小功能,它通常用于创建时间计时器,比如赛事倒计时、闹钟、定时提醒等。本篇将详细介绍如何在Android中实现一个倒计时功能,并探讨相关的关键知识点。 ...
在本文中,我们将深入探讨Android倒计时器的工作原理、如何创建以及如何在实际应用中使用。 首先,让我们了解一下Android中的CountDownTimer类。它是Android SDK提供的一个内置类,位于`android.os`包中,用于创建...
在Android开发中,创建一个促销倒计时的计时器是一项常见的需求,它通常用于电商平台或者活动页面,用来展示剩余的优惠时间,增加用户的紧迫感。这个特定的案例提到的"android 促销 倒计时 时分秒"是一个显示天、时...
"android 计时器"通常指的是Android SDK提供的一系列类,用于帮助开发者实现倒计时或者周期性任务。本篇将深入探讨如何使用Android中的计时器,特别是基于`CountDownTimer`的改编版本。 `CountDownTimer`是Android...
本篇文章将深入探讨如何高效地在Android RecycleView中实现所有item的倒计时功能。 首先,我们需要理解RecycleView的工作原理。它通过复用已滚动出屏幕的view来节省内存,这意味着一个view可能被用来显示不同的数据...
本Demo以layui UI框架为基础,实现了一个可切换的计时器,支持倒计时和正计时两种模式。layui是一款优秀的前端UI框架,以其简洁、易用的设计理念深受开发者喜爱,它提供了丰富的组件和样式,方便快速构建美观的用户...
Android架构组件中的LiveData和ViewModel可以帮助实现数据在Activity和Fragment之间的存活,即使设备旋转或其它配置改变,倒计时状态也能保持。 **8. 单元测试与集成测试** 为了确保代码质量,开发者通常会为应用...
本篇将详细讲解如何在Android应用中实现一个具备开始、暂停、继续、停止和重置功能的倒计时器。 一、倒计时器基础 Android中的`CountDownTimer`类位于`android.os`包下,它提供了一个简单的方法来启动一个倒计时。...
4. **暂停计时器**:为了实现暂停功能,我们需要一个布尔变量`isPaused`来跟踪计时器状态。在需要暂停时,将`isPaused`设置为`true`,并调用`handler.removeCallbacks(timerRunnable)`取消当前的延时任务。 ```java...
`start()`方法用于启动计时器,`stop()`方法用于暂停计时器: ```cpp void MainWindow::startTimer() { timer->start(1000); // 每秒触发一次 } void MainWindow::pauseTimer() { timer->stop(); } void ...