安卓开发_计时器(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中没有提供所有应用可 ...
随机推荐
- H5的Page Visibility API
概述 哈哈,又学了一个H5的API.今天突然对动态获取网页的选中状态很感兴趣,然后去查了下,发现真的有个API控制它--Page Visibility API.于是把学到的东西记录下来,供以后开发时参 ...
- Linux - 快速进入目录的方法
cd命令技巧 直接进入用户的home目录: cd ~ 进入上一个目录: cd - 进入当前目录的上一层目录: cd .. 进入当前目录的上两层目录: cd ../.. 其他常用方法 利用tab键,自动 ...
- 【xsy2304】哈 最短路
题目大意:有一个$n$个点,$m$条有向边的图,有$q$组询问. 每次询问:从$a$到$b$,经过不超过$c$条边,且依次经过的边边权递增,问最短路为多少,无解输出-1. 数据范围:$n≤150$,$ ...
- UFLDL 教程学习笔记(三)自编码与稀疏性
UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ...
- 线程安全-005-synchronized其他概念
一.Synchornized锁重入 例子程序: package com.lhy.thread01; public class SyncDouble1 { public synchronized voi ...
- 利用jquery操作隐藏table某一列
本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. //隐藏表格第一列 $('tr').find('th:eq(0)').hide(); $('tr').f ...
- 以ActiveMQ为例JAVA消息中间件学习【3】——SpringBoot中使用ActiveMQ
前言 首先我们在java环境中使用了ActiveMQ,然后我们又在Spring中使用了ActiveMQ 本来这样已经可以了,但是最近SpringBoot也来了.所以在其中也需要使用试试. 可以提前透露 ...
- 使用Java代码自定义Ribbon配置
很多场景下,需要实现不同的微服务采用不同的策略,例如修改Ribbon的负载均衡规则等.Spring Cloud允许使用Java代码自定义Ribbon的配置. 在Spring Cloud中,Ribbon ...
- Angular学习第一步
前端开发越来越流行了,作为后端开发人员,也开始需要学习前端了.随着前端技术的发展,前端技术也越来越复杂,复杂程度不亚于后端,各种框架各种设计模式前端都用上了,什么AngularJS,Angular, ...
- System.Action的使用(lambda 表达式)
对于Action的使用方法使用如下: namespace ConsoleApp1 { class Program { static void Main(string[] args) { string ...