[Android]笔记11-计时器

来源:互联网 发布:王砚辉 知乎 编辑:程序博客网 时间:2024/06/05 20:25

计时器(Chronometer)

Android 还提供了一个计时器组件:Chronometer,该组件与TextClock都继承自TextView,因此他们都会显示一段文本。但Chronometer都不是显示当前时间,它显示的是从某个起始时间开始,一共过去了多长时间。
Chronometer 的用法也很简单,它只提供了一个androrid:fomat属性,用于指定计时器的计时格式,除此之外,Chronometer还支持如下常用方法:

  • setBase(long base):设置计时器的起始时间
  • setFormat(String format):设置显示时间格式
  • start():开始计时
  • stop():停止计时
  • setOnChronometerTickListener(Chronometer.OnChronometerTickListerner):为计时器绑定事件监听器,当计时器改变时触发该监听器。
package com.dezai.chronometer;import android.os.SystemClock;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Chronometer;public class MainActivity extends AppCompatActivity {    Chronometer ch;    Button start;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取计时器组件        ch=(Chronometer) findViewById(R.id.test);        //获取开始按钮        start=(Button) findViewById(R.id.start);        start.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View source) {                //设置开始计时时间                ch.setBase(SystemClock.elapsedRealtime());                ch.start();                start.setEnabled(false);            }        });        //为Chronometer 绑定事件监视器        ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener(){            @Override            public void onChronometerTick(Chronometer ch){                //如果从开始计时到现在超过了5s                if(SystemClock.elapsedRealtime()-ch.getBase()>5*1000){                    ch.stop();                    start.setEnabled(true);                }            }        });    }}

这里写图片描述

原创粉丝点击