Android用户界面 UI组件--TextView及其子类(四) Chronometer计时器
Chronometer是一个简单的定时器,你可以给它一个开始时间,并以此定时,或者如果你不给它一个开始时间,它将会使用你的时间通话开始。默认情况下它会显示在当前定时器的值的形式“分:秒”或“H:MM:SS的”,或者可以使用的Set(字符串)格式的定时器值到一个任意字符串
1.重要属性
android:format:定义时间的格式如:hh:mm:ss
2.重要方法
setBase(long base):设置倒计时定时器
setFormat(String format):设置显示时间的格式。
start():开始计时
stop():停止计时
setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener):当计时器改变时调用
实例:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" android:orientation="vertical" > <Chronometer android:id="@+id/chronometer" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ffff0000" android:textSize="12pt" /> <Button android:id="@+id/start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="启动" /> <Button android:id="@+id/stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="停止" /> <Button android:id="@+id/reset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="复位" /> </LinearLayout>
package com.light.study.android; import android.app.Activity; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.widget.Button; import android.widget.Chronometer; public class MainActivity extends Activity { private Button startBtn,stopBtn,resetBtn; private Chronometer chronomete; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); chronomete = (Chronometer) this.findViewById(R.id.chronometer); startBtn = (Button) this.findViewById(R.id.start); stopBtn = (Button) this.findViewById(R.id.stop); resetBtn = (Button) this.findViewById(R.id.reset); } public void onClick(View v) { if (v == startBtn) {// 开始计时 chronomete.start(); } else if (v == stopBtn) { chronomete.stop();// 停止计时 } else if (v == resetBtn) { chronomete.setBase(SystemClock.elapsedRealtime());// 复位 } } }
结果: