实现计时器的开始、暂停、继续计时和重置功能

实现效果:

activity.xml代码:

<Chronometerandroid:id="@+id/chronometer"android:layout_width="match_parent"android:layout_height="312dp"android:gravity="bottom|center"android:textColor="#ff0000"android:textSize="40sp" />
<LinearLayoutandroid:layout_width="match_parent"android:layout_height="144dp"android:gravity="center"android:orientation="horizontal"><Buttonandroid:id="@+id/start"android:layout_width="60dp"android:layout_height="71dp"android:layout_gravity="center_horizontal"android:layout_marginRight="20dp"android:background="@drawable/bg_go"android:text="开始" /><Buttonandroid:id="@+id/stop"android:layout_width="60dp"android:layout_height="71dp"android:layout_gravity="center_horizontal"android:layout_marginRight="20dp"android:background="@drawable/bg_go"android:text="暂停" /><Buttonandroid:id="@+id/countinue"android:layout_width="60dp"android:layout_height="71dp"android:layout_gravity="center_horizontal"android:layout_marginRight="20dp"android:background="@drawable/bg_go"android:text="继续" /><Buttonandroid:id="@+id/bun4"android:layout_width="60dp"android:layout_height="71dp"android:layout_gravity="center_horizontal"android:background="@drawable/bg_go"android:text="重置" />
</LinearLayout>
chronometer.setBase设置计时点
chronometer.getBase返回计时时间
SystemClock.elapsedRealtime()用于某个事件经历的时间,如点击的时间间隔。
继续计时设计思路:当用户点击暂停的时候获取计时器从开始到当前暂停所用的时间(rangeTime初始为0)rangeTime=SystemClock.elapsedRealtime()-chronometer.getBase();当用户点继续计时的时候,重新设置计时点,获取当前点击的时间减去rangeTime即为要设置的时间,即chronometer.setBase(SystemClock.elapsedRealtime()-rangeTime);
参考:https://blog.csdn.net/lxz26192/article/details/29361625?spm=1001.2014.3001.5506

另外chronometer的监听事件:(我没有用,我就不写了)

chronometer?.setOnChronometerTickListener{}

kotlin代码:

记得绑定控件!!!!!!!

var rangeTime=0
//开始按钮:start?.setOnClickListener {chronometer.setBase(SystemClock.elapsedRealtime())chronometer.start()
}
//暂停按钮:stop?.setOnClickListener {
rangeTime= (SystemClock.elapsedRealtime()-chronometer.getBase()).toInt()
chronometer.stop()}//继续按钮:countinue?.setOnClickListener {chronometer.setBase(SystemClock.elapsedRealtime()-rangeTime)chronometer.start()
}
//重置按钮:bun4?.setOnClickListener {chronometer.setText("00:00")chronometer.setBase(SystemClock.elapsedRealtime())chronometer.stop()
}

Android计时器chronometer-Kotlin版相关推荐

  1. Android 计时器 Chronometer

    Android 简单的计时器可以使用系统提供的方法Chronometer 下面是是实现的效果 Chronometer 的几个方法如下: 1  start(); 计时开始 2 stop(); 计时暂停 ...

  2. Android中Chronometer计时器的简单使用

    场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...

  3. Chronometer控件实现的Android计时器

    本文为大家演示了如何使用Chronometer控件实现Android计时器的实例. 先贴上最终的实现效果图: Android计时器实现思路 使用Chronometer控件实现计器的操作.通过设置set ...

  4. android之计时器chronometer

    效果图: activity代码: package cn.com.chenzheng_java; import java.util.Timer; import java.util.TimerTask; ...

  5. android 实现AOP 使用Aspectj Kotlin版

    注意代码为Kotlin 什么是OOP.什么是AOP? OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分,而AOP则是针对业务处理过程中的切面进行 ...

  6. Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin版

    Kotlin版 蓝牙开发 (扫描设备.绑定.解绑) 前言 运行效果图 正文 ① 配置项目 ② 布局和样式 ③ 编码 1. 通知栏样式修改 2. 蓝牙设备列表适配器编写 3. 权限请求 4. 初始化蓝牙 ...

  7. 【Android】Chronometer计时器实现计时、停止、暂停、重置功能

    [Android]Button+Chronometer计时器实现计时.停止.暂停.重置功能! 一.简介 Chronometer的用法很简单,它支持如下用法: getBase():返回时间. setBa ...

  8. android 计时器 三种,Android计时器的三种实现方式(Chronometer、Timer、handler)

    本文实例为大家分享了Android计时器的三种方法,具体内容如下 目录: 1.借助Timer实现 2.调用handler.sendMessagedely(Message msg, long delay ...

  9. Android我自己的简易(秒表)计时器Chronometer

    Android我自己的简易(秒表)计时器Chronometer 就是一个简单的计时器 布局文件:activity_main.xml <LinearLayout xmlns:android=&qu ...

  10. kotlin版仿哔哩哔哩动画Android客户端(哔哩哔哩 (゜-゜)つロ 干杯~-bilibili)

    前言 kotlin 版由于几年前对于kotlin还不熟悉,许多地方不规范 该仿的项目为原项目的kotlin版,由于本人水平有限,有些kotlin写法不规范,后期会逐步完善,和原开源项目一样采用mvp+ ...

最新文章

  1. 数据库为什么使用B+树而不是B树
  2. ios--成员变量与属性的区别
  3. Chromium:安装depot_tools及获取Chromium源代码
  4. GDCM:gdcm::EncapsulatedDocument的测试程序
  5. 擎天出口退税软件_新版申报系统退税申报注意事项
  6. java因子的计算方法是_JAVA分解质因子
  7. django model对象修改_从0到1搭建个人博客-Django(三)
  8. GBDT迭代决策树的入门教程
  9. python 装饰器粗浅理解
  10. vuecli工程里面引入图片
  11. docker always_docker一键安装wordpress,真一键!
  12. 我是如何完美解决WIN10崩溃无法自动恢复启动问题的
  13. 霍夫曼树和霍夫曼编码原理
  14. 2017年苹果开发者账号申请——账号VISA卡支付流程
  15. 新华社-中国移动联手打造盘古搜索 2月22日上线
  16. 优秀员工评审表 模板
  17. 如何保护自己的颈椎?
  18. 使用Visual Studio编译Qt项目出现“E1696 无法打开Qt源文件”的解决方案,亲测可行
  19. mysql dbms是什么_数据库管理系统(DBMS)是用来做什么的?
  20. oracle中文问号乱码,Oracle 中文记录 及 乱码 判断 说明 .(转)

热门文章

  1. 新浪微博开放平台开发-android客户端(1)
  2. 共享打印机显示计算机权限,Win7共享打印机无法访问:您没有权限访问怎么办?
  3. JS日历控件 (兼容IE firefox) 可选择时间
  4. 电脑卡住了怎么保存excel_“表格保存不了怎么办“电脑卡死excel怎么保存
  5. 电脑卡住了怎么保存excel_电脑卡死了excel没保存怎么办啊
  6. Oracle数据库岗位,Oracle数据库岗位职责
  7. 微服务入门到入土(08)-消息队列RabbitMQ
  8. 用category重写NSMutableArray排序,倒序
  9. 最近刷爆微信抖音的夏日便捷小空调小程序源码
  10. TARA从3.4.1更新到3.5.7后项目运行出现app.js错误: TypeError: Cannot read property ‘isBatchingLegacy‘ of undefined