计时器(Chronometer)

计时器(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.效果显示图

原文地址:https://www.cnblogs.com/wuziyue/p/5470523.html