计时器(Chronometer)

常用属性:format(计时器的计时格式)

常用方法:

setBase(long base)

设置计时器的起始时间

setFormat(String format)

设置显示的 时间格式

start()

开始时间

stop()

停止时间

下面我们来看具体的代码:

1.Activity

//计时钟,计时器
public class ChronometerActivity extends Activity {

    private Chronometer chronometer;
    private Button startButton;
    private Button stopButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.chronometer);

        chronometer = (Chronometer)findViewById(R.id.chronometerId);
        startButton = (Button)findViewById(R.id.startButtonId);
        stopButton = (Button)findViewById(R.id.stopButtonId);

        startButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //setFormat(String format)    //设置显示时间的格式
                chronometer.setBase(SystemClock.elapsedRealtime());//设置计时器,SystemClock.elapsedRealtime设定系统时钟
                chronometer.start();//开始计时
                startButton.setEnabled(false);
            }
        });
        stopButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                chronometer.stop();//停止计时
                startButton.setEnabled(true);
            }
        });
//        当计时器改变的时候调用
        chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
            public void onChronometerTick(Chronometer chronometer) {
                //10秒钟之后自动停止,当前的时间减去设定的是时间,比如这里我们设置计时器只计时10秒
                if(SystemClock.elapsedRealtime()-chronometer.getBase()>10*1000){
                    chronometer.stop();
                    startButton.setEnabled(true);
                }
            }
        });
    }
}

2.xml布局文件

<?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"
    android:padding="5dp" >

    <Chronometer
        android:id="@+id/chronometerId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textSize="30sp" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/startButtonId"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开始" />

        <Button
            android:id="@+id/stopButtonId"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="停止" />
    </LinearLayout>

</LinearLayout>

3.效果显示图

时间: 2024-10-09 03:30:27

计时器(Chronometer)的相关文章

android中计时器chronometer

计时器chronometer继承自TextView,显示的是从一个起始时间开始,一共过去了多长时间. 属性只有一个format,用于指定计时器的计时格式. 要用时间间隔,可以用SystemClock来实现: 1.SystemClock.currentThreadTimeMillis(); // 在当前线程中已运行的时间  2.SystemClock.elapsedRealtime(); // 从开机到现在的毫秒书(手机睡眠(sleep)的时间也包括在内)  3.SystemClock.uptim

安卓学习第9课——计时器chronometer

今天学习了钟表及计时器.. 我觉得AnalogClock和DigitalClock直接使用就可以.唯一需要知道的就是AnalogClock是可以修改表盘和分针时针的. 方法是android:dail及android:hand_minute和hand_hour. 下面介绍的是计时器的用法. 首先xml中只要放入一个chronometer和一个按钮即可.为的是是点击启动按钮,开始计时,20s停止. package com.example.chronometer; import android.app

计时器chronometer补充

项目中要实现关于安卓控件chronometer这部分的功能需求: 1.计时器的功能对用户答题时间进行时间统计,用户答完该题,进入下一题,计时器接续上一题的结束时间继续计时: 2.用户可以跳出答题界面,然后进入主页面,再次选择其他题进入答题界面,这时候计时器接续跳之前的时间断点继续计时: 其实关键点就是,计时器停止计时的时候,使用一个全局的静态变量(静态的原因,当用户跳出答题界面的时候,再次进入答题界面会从onCreat()函数开始执行,所以要使用静态变量保存:全局的原因是因为程序任何修改计时器的

Android有感(20):时钟(AnalogClock和TextClock)和计时器(Chronometer)

时钟文本TextClock继承自TextView,是用于显示当前时间的文本框. TextClock支持的XML属性和相关方法 XML属性 相关方法 说明 android:format12Hour setFormat12Hour(CharSequence) 设置12小时制的格式字符串 android:format24Hour setFormat12Hour(CharSequence) 设置24小时制的格式字符串 android:timeZone setTimeZone(String) 设置该时钟的

计时器Chronometer和时钟(AnalogClock和DigitalClock)

计时器Chronometer和时钟(AnalogClock和DigitalClock) (1)Android提供了两个时钟组件:AnalogClock和DigitalClock,DigitalClock继承了TextView组件,也就是说它本身是一个文本框,只是他里面的内容总是当前时间,所以为DigitalClock设置android:text属性没有作用:AnalogClock继承了View组件,重写了View的OnDraw方法,它会在View上绘制模拟时钟. (2)AnalogClock与D

UI组件之TextView及其子类(五)计时器Chronometer

Chronometer直接继承了TextView组件,它会显示一段文本,显示从某个其实时间开始,一共过了多长时间.我们看Chronometer的源码: 可以看出计时器是直接继承了TextView,当然可以用TextView的所有属性和方法.同时及时其还有自己的内部接口OnChronometerTickListener 计时器的新增属性和方法: 计时器的常用方法如下: setBase(long base):设置计时器的起始时间 setFormat(String format) :设置显示时间的格式

【Android】标签页、计时器、单选按钮、复选按钮

写一个小程序把安卓程序中的几个基础组件的基本用法串联起来. 如下图所示: 在安卓程序中,一个计时器,一直在不断地计时,每10秒弹出一个提示. MainActivity被一个标签页分成两部分,一部分,有单选按钮与复选按钮,最后有一个提交按钮, 结果在另一个标签页中显示. 用这个程序来说明安卓中标签页.计时器.单选按钮.复选按钮的用法. 首先贴上res\values\string.xml中,各个组件的字符串. <?xml version="1.0" encoding="ut

高级控件 下(一)

1.计时器(Chronometer)<!-- 给应用授权:改变震动的权限 --><uses-permission android:name="android.permission.VIBRATE"></uses-permission>//取得震动服务vb=(Vibrator) getApplication().getSystemService(Service.VIBRATOR_SERVICE);//开始计时bstart.setOnClickListe

Android开发笔记 TableLayout常用的属性介绍

今天看了安卓简单控件的布局方式,大概有绝对.相对.表格.线性.帧式布局五种方式,表格布局里面的一些属性相对来说比较复杂,下面主要谈谈表格方式布局的一些属性 TableLayout经常用到的属性有: android:collapseColumns:以第0行为序,隐藏指定的列: android:collapseColumns该属性为空时,效果如下图: 把android:collapseColumns=0,2-------------->意思是把第0和第2列去掉,如下图: android:shrink

Android学习笔记(二一):有趣的widget-日期和时间

Android提供了日期和时间的widget. 日期widget DatePicker和DatePickerDialog,DatePickerDialog是装载DatePicker的一个简单的容器,如图所示.分别有一个触发方法OnDateChangedListener( ) 和OnDateSetListener( ). 在这个例子中,我们设置了两个button和一个textView,当按键弹出DatePickDialog. 步骤1:一些有关时间的java函数 获得当前时间的实例:Calendar