Android使用Chronometer组件实现一个简单的计时器
Chronometer类可以实现一个简单的计时器。
可以通过elapsedRealtime()来给它一个基准时间,并从该时间开始计数。
如果你不给它基准时间,它将使用你调用start()时的时间。
默认它将显示当前”MM:SS”或 “H:MM:SS”格式的时间,或者你能通过setFormat(String)设置一个任意字符串来格式化显示计时器显示的时间。
Activity
[java][/java] view plaincopy
- package com.app.test01;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.SystemClock;
- import android.view.View;
- import android.widget.Chronometer;
- /*
- * Chronometer实现一个简单的计时器。
- * */
- public class ChronometerDemo extends Activity {
- private Chronometer chronometer;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_chronometer);
- chronometer = (Chronometer) findViewById(R.id.chronometer);
- //setFormat设置用于显示的格式化字符串。
- //格式化字符串:如果指定,计时器将根据这个字符串来显示,替换字符串中第一个“%s”为当前”MM:SS”或 “H:MM:SS”格式的时间显示。
- chronometer.setFormat(“计时:%s”);
- }
- /** 开始计时*/
- public void onStart(View view) {
- chronometer.start();
- }
- /** 停止计时*/
- public void onStop(View view) {
- chronometer.stop();
- }
- /** 重置*/
- public void onReset(View view) {
- //setBase 设置基准时间
- //设置参数base为SystemClock.elapsedRealtime()即表示从当前时间开始重新计时)。
- chronometer.setBase(SystemClock.elapsedRealtime());
- }
- }
XML布局文件
[html][/html] view plaincopy
- <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
- android:layout_width=”wrap_content”
- android:layout_height=”wrap_content”
- android:orientation=”vertical” >
- <Chronometer
- android:id=”@+id/chronometer”
- android:layout_width=”wrap_content”
- android:layout_height=”wrap_content”
- android:layout_gravity=”center_horizontal” >
- </Chronometer>
- <LinearLayout
- android:layout_width=”wrap_content”
- android:layout_height=”wrap_content” >
- <Button
- android:layout_width=”wrap_content”
- android:layout_height=”wrap_content”
- android:onClick=”onStart”
- android:text=”开始计时” >
- </Button>
- <Button
- android:layout_width=”wrap_content”
- android:layout_height=”wrap_content”
- android:onClick=”onStop”
- android:text=”停止计时” >
- </Button>
- <Button
- android:layout_width=”wrap_content”
- android:layout_height=”wrap_content”
- android:onClick=”onReset”
- android:text=”重置” >
- </Button>
- </LinearLayout>
- </LinearLayout>