Android使用Chronometer组件实现一个简单的计时器

Chronometer类可以实现一个简单的计时器。

可以通过elapsedRealtime()来给它一个基准时间,并从该时间开始计数。

如果你不给它基准时间,它将使用你调用start()时的时间。

默认它将显示当前”MM:SS”或 “H:MM:SS”格式的时间,或者你能通过setFormat(String)设置一个任意字符串来格式化显示计时器显示的时间。

 

Activity

[java][/java] view plaincopy

  1. package com.app.test01;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.os.SystemClock;
  5. import android.view.View;
  6. import android.widget.Chronometer;
  7. /*
  8.  *  Chronometer实现一个简单的计时器。
  9.  * */
  10. public class ChronometerDemo extends Activity {
  11.     private Chronometer chronometer;
  12.     @Override
  13.     protected void onCreate(Bundle savedInstanceState) {
  14.         super.onCreate(savedInstanceState);
  15.         setContentView(R.layout.activity_chronometer);
  16.         chronometer = (Chronometer) findViewById(R.id.chronometer);
  17.         //setFormat设置用于显示的格式化字符串。
  18.         //格式化字符串:如果指定,计时器将根据这个字符串来显示,替换字符串中第一个“%s”为当前”MM:SS”或 “H:MM:SS”格式的时间显示。
  19.         chronometer.setFormat(“计时:%s”);
  20.     }
  21.     /** 开始计时*/
  22.     public void onStart(View view) {
  23.         chronometer.start();
  24.     }
  25.     /** 停止计时*/
  26.     public void onStop(View view) {
  27.         chronometer.stop();
  28.     }
  29.     /** 重置*/
  30.     public void onReset(View view) {
  31.         //setBase 设置基准时间
  32.         //设置参数base为SystemClock.elapsedRealtime()即表示从当前时间开始重新计时)。
  33.         chronometer.setBase(SystemClock.elapsedRealtime());
  34.     }
  35. }

XML布局文件

[html][/html] view plaincopy

  1. <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
  2.     android:layout_width=”wrap_content”
  3.     android:layout_height=”wrap_content”
  4.     android:orientation=”vertical” >
  5.     <Chronometer
  6.         android:id=”@+id/chronometer”
  7.         android:layout_width=”wrap_content”
  8.         android:layout_height=”wrap_content”
  9.         android:layout_gravity=”center_horizontal” >
  10.     </Chronometer>
  11.     <LinearLayout
  12.         android:layout_width=”wrap_content”
  13.         android:layout_height=”wrap_content” >
  14.         <Button
  15.             android:layout_width=”wrap_content”
  16.             android:layout_height=”wrap_content”
  17.             android:onClick=”onStart”
  18.             android:text=”开始计时” >
  19.         </Button>
  20.         <Button
  21.             android:layout_width=”wrap_content”
  22.             android:layout_height=”wrap_content”
  23.             android:onClick=”onStop”
  24.             android:text=”停止计时” >
  25.         </Button>
  26.         <Button
  27.             android:layout_width=”wrap_content”
  28.             android:layout_height=”wrap_content”
  29.             android:onClick=”onReset”
  30.             android:text=”重置” >
  31.         </Button>
  32.     </LinearLayout>
  33. </LinearLayout>

效果图

标签