Android自带倒计时控件Chronometer使用方法详解
作者:Android_小新哥哥 发布时间:2022-09-18 13:11:33
标签:Android,Chronometer,倒计时
公司的以前的项目,看到使用了这个Android自带的倒计时控件Chronometer,现在整合了一下
先看看效果:
<Chronometer
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="30dp" />
<Button
android:onClick="start"
android:text="开始"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:onClick="stop"
android:text="停止"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:onClick="reset"
android:text="重置"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
方法简介:
long getBase(); //返回基地的时间,由setBase(long)设置的,可以是SystemClock.elapsedRealtime()
String getFormat();//返回当前字符串格式,此格式是通过setFormat()实现的
void setBase(long base);//设置时间,计数定时器指定的值
void setFormat(String format);//设置显示的内容,计时器将会显示这个参数所对应的值得,如果字符串的值为null,那么返回的值为MM:SS格式的
private Chronometer chronometer;
private long recordTime;//记录下来的总时间
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chronometer= (Chronometer) findViewById(R.id.chronometer);
chronometer.setFormat("计时:%s");//设置显示的格式
Toast.makeText(MainActivity.this, ""+recordTime, Toast.LENGTH_SHORT).show();
}
public void start(View view){
chronometer.setBase(SystemClock.elapsedRealtime()-recordTime);//跳过已经记录的时间
chronometer.start();
}
public void stop(View view){
chronometer.stop();
recordTime=SystemClock.elapsedRealtime()-chronometer.getBase();//保存这次记录的时间
}
public void reset(View view){
recordTime=0;//重置时间
chronometer.setBase(SystemClock.elapsedRealtime());
}


猜你喜欢
- 主要是应对这种需求:软件只允许启动一次。将这个问题转化一下,可以这样描述:对于一个软件,在启动一个进程之后,不允许启动其它进程,如果第二次打
- 1.添加引用工具箱---右键---选择项--COM组件--Adobe PDF Reader2.使用方法OpenFileDialog open
- 业务场景:调用同步接口获取当前全部有效账户,数据库已存在部分账户信息,因此需要筛选同步接口中已存在本地的帐户。调用接口获取的数据集合List
- 注意:页面分别拖拽一个FileUpload、Button1、Label1、GridView控件,并新建一个UploadedExcel文件夹D
- 前言我们在写搬砖的过程中,少不了需要将A对象转成B对象,对对象进行对象的转换是一个操作重复且繁琐的工作。于是市面上就有许多的对象转换工具来解
- 汉诺(Hanoi)塔问题:古代有一个梵塔,塔内有三个座A、B、C,A座上有n个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把
- 这篇文章主要介绍了Spring JDK * 实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 这一篇文章介绍SpringBoot应用修改默认打jar形式部署为打war包形式,部署到外部Tomcat。SpringBoot应用默认打包成为
- 完美地模仿了2048游戏,是根据网友的一个2048改的。Block.javaimport javax.swing.*;import java
- 企业级项目开发中都会有文件、图片、视频等文件上传并能够访问的场景,对于初学者Demo可能会直接存储在应用服务器上;对于传统项目可能会单独搭建
- * 在JavaWeb开发中用得比较多Java Web开发中的 * (listener)就是application、session、requ
- 1.简单计算器使用AWT编程,FrameNORTH区域放置TextField组件,将指定为4行5列GridLayout布局管理器的Panel
- 目录引言什么是Span关于String的一段性能提升测试代码最终性能对比写在最后引言C# 是一门现代化的编程语言,与Java十分的相似。熟练
- 本文实例讲述了Android读取assets目录下的所有图片并显示的方法。分享给大家供大家参考。具体方法分析如下:在assets文件夹里面的
- webp格式图片webp格式图片是google推出的,相比jpg png有着巨大的优势,同样质量的图片webp格式的图片占用空间更小,在像电
- 一、前沿如果你学习过其他的编程语言,你就会发现 Java 的语法很是哆嗦,可是我们为什么没有放弃 Java 这门编程语言呢?因为 JVM 是
- 1. 将对象转换为JSON字符串,返回值为一个JSON字符串public static String toJson(Object value
- 如果对一个值可以包含多个,那么可以使用枚举,加上Flags。新建一个Flags枚举类型:[Flags] publi
- 快速排序的原理:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一
- 在编程过程中一定要注意代码命名的规范性,否则在使用和维护过程中将造成很大的麻烦,这也是一种良好的编码习惯。看下面代码,除了userPass命