安卓开发_计时器(Chronometer)的简单使用
计时器控件(Chronometer)是一个可以显示从某个起始时间开始一共过去多长时间的本文。
继承自TextView,以文本的形式显示时间内容
该组件有五个方法
1、setBase(): \\用于设置计时器的起始时间
2、setFormat():\\用于设置显示时间的格式
3、start(): \\用于指定计时开始
4、stop(): \\用于指定停止计时
5、setOnChronometerTickListener(): \\用于为计时器绑定事件监听器,当计时器改变时触发监听器
使用示例
1、先看布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <Chronometer
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20dp"
android:text="已用时间:0:00"
android:layout_gravity="center"
android:id="@+id/id_jishiqi"/> <Button
android:id="@+id/btn_jishi_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始计时" /> <Button
android:id="@+id/btn_jishi_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="暂停计时" /> <Button
android:id="@+id/btn_jishi_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="复位" /> </LinearLayout>
布局效果图:

再看JAVA文件
package base_ui; import com.example.allcode.R; import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener; public class Ui_Jishiqi extends Activity implements OnClickListener{
private Chronometer jishiqi;
private Button btn_jishi_1;
private Button btn_jishi_2;
private Button btn_jishi_3; @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.base_ui_jishiqi); jishiqi = (Chronometer) findViewById(R.id.id_jishiqi);
btn_jishi_1 = (Button) findViewById(R.id.btn_jishi_1);
btn_jishi_2 = (Button) findViewById(R.id.btn_jishi_2);
btn_jishi_3 = (Button) findViewById(R.id.btn_jishi_3); jishiqi.setBase(SystemClock.elapsedRealtime()); //设置起始时间 ,这里是从0开始
jishiqi.setFormat("已用时间:%s"); btn_jishi_1.setOnClickListener(this);
btn_jishi_2.setOnClickListener(this);
btn_jishi_3.setOnClickListener(this);
//这里是计时器的监听器,可以在里面添加比如计时到多少事件提示什么文本等事件
jishiqi.setOnChronometerTickListener(new OnChronometerTickListener() { @Override
public void onChronometerTick(Chronometer chronometer) {
// TODO Auto-generated method stub }
}); }
//三个按钮的响应事件
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId())
{
case R.id.btn_jishi_1:
jishiqi.start(); //开始计时
break;
case R.id.btn_jishi_2:
jishiqi.stop(); //暂停计时
break;
case R.id.btn_jishi_3:
jishiqi.setBase(SystemClock.elapsedRealtime()); //复位
break;
}
} }
代码很简单,注释很清楚
需要注意的是,当点击开始计时按钮后,计时开始,再点击暂停计时按钮,计时暂停,但是又点击开始计时的,计时器并不是从你显示的那个暂停的时间开始计时,而是
跳过了一段时间,这段时间就是你点击暂停计时按钮和第二次点击开始计时按钮中间的时间,这个时间后台是一直计算着的。
要想从你暂停计时显示的时间开始计时,可以计算一下你点击暂停计时按钮和第二次点击开始计时按钮中间的时间 减去这个时间就可以了 。
效果图:

安卓开发_计时器(Chronometer)的简单使用的更多相关文章
- 安卓开发_深入学习ViewPager控件
一.概述 ViewPager是android扩展包v4包(android.support.v4.view.ViewPager)中的类,这个类可以让用户左右切换当前的view. ViewPager特点: ...
- 安卓开发_数据存储技术_SharedPreferences类
SharedPreferences类 供开发人员保存和获取基本数据类型的键值对. 该类主要用于基本类型,例如:booleans,ints,longs,strings.在应用程序结束后,数据仍旧会保存. ...
- 安卓开发_浅谈ListView(SimpleAdapter数组适配器)
安卓开发_浅谈ListView(ArrayAdapter数组适配器) 学习使用ListView组件和SimapleAdapter适配器实现一个带图标的ListView列表 总共3部分 一.MainAc ...
- 安卓开发_浅谈Android动画(四)
Property动画 概念:属性动画,即通过改变对象属性的动画. 特点:属性动画真正改变了一个UI控件,包括其事件触发焦点的位置 一.重要的动画类及属性值: 1. ValueAnimator 基本属 ...
- 安卓开发_数据存储技术_sqlite
一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 ...
- 安卓开发_浅谈ListView(自定义适配器)
ListView作为一个实际开发中使用率非常高的视图,一般的系统自带的适配器都无法满足开发中的需求,这时候就需要开发人员来自定义适配器使得ListView能够有一个不错的显示效果 有这样一个Demo ...
- 安卓开发_浅谈Fragment之ListFragment
ListFragment,即Fragment的一个子类,当我们用的一个Fragment只需要一个listview视图的时候使用 该类有几个特点: 1.ListFragment 本身具只有一个ListV ...
- 安卓开发_复选按钮控件(CheckBox)的简单使用
复选按钮 即可以选择若干个选项,与单选按钮不同的是,复选按钮的图标是方块,单选按钮是圆圈 复选按钮用CheckBox表示,CheckBox是Button的子类,支持使用Button的所有属性 一.由于 ...
- 安卓开发_深入理解Content Provider
一.Content Provider概述 Content Provider用于保存和获取数据,并使其对所有应用程序可见,这是不同应用程序之间共享数据的唯一方式,因为在Android中没有提供所有应用可 ...
随机推荐
- 华硕FX503V 安装ubuntu遇到问题解决
关机进bios,确保secure boot是关闭的,第一启动项设为带有uefi 的U盘,也就是ubuntu安装盘,F10保存退出; 接下来会进入grub界面,选择install ubuntu,不要按e ...
- Ubuntu16.04 + gtx1060 + cuda8.0 + cudnn5.1 + caffe + Theano + Tensorflow
参考 ubuntu16.04+gtx1060+cuda8.0+caffe安装.测试经历 ,细节处有差异. 首先说明,这是在台式机上的安装测试经历,首先安装的win10,然后安装ubuntu16.04双 ...
- iOSAPP开发项目搭建
架构图: 架构原则:易读性.易维护性.易扩展性. 一.思考 做好一件事,花在思考上的时间应该多于执行. 首先根据产品需求和设计图,脑中先建立一个产品架构: 1. 产品的定位是什么. 社交?媒体?游戏? ...
- python(31)——【sys模块】【json模块 & pickle模块】
一.sys模块 import sys sys.argv #命令行参数List,第一个元素是程序本身路径 sys.exit() #退出程序,正常退出时exit(0) sys.version #获取pyt ...
- 发布一个关于SharePoint的管理小工具
源码地址: https://github.com/GavinHacker/SiteCollectionManager 这是一个C#可执行程序,用于添加,删除,备份,还原SharePoint站点,可以 ...
- HDU 6020---MG loves apple(枚举)
题目链接 Problem Description MG is a rich boy. He has n apples, each has a value of V(0<=V<=9). A ...
- UML类图中的六种关系(物理设计阶段)
UML类图中经常会用到各种箭头和线条来表示不同类或者接口之间的关系,因此非常好的理解各个图标的含义是很有必要的. 在物理设计阶段可以通过EA工具将类图搭建好,然后直接生成物理类,这样也可以减少物理设计 ...
- Python:使用基于事件驱动的SAX解析XML
SAX的特点: 是基于事件的 API 在一个比 DOM 低的级别上操作 为您提供比 DOM 更多的控制 几乎总是比 DOM 更有效率 但不幸的是,需要比 DOM 更多的工作 基于对象和基于事件的接口 ...
- Firefox37.0.1+selenium 2.53+python3.6打开浏览器时报错NameError: name 'basestring' is not defined
环境:Win7 Firefox浏览器版本37.0.1 Python36 Selenium2.53.0 在Pycharm里执行以下3行脚本: from selenium i ...
- Windows系统环境下创建mysql主从数据库方法(双向主从复制)
创建mysql主从数据库方法(双向主从复制) (一)Windows系统下的MySQL主从复制(单向复制) (1)环境说明: 1,Mysql版本:mysql5.7.20(主从机mysql版本必须一致) ...