当你想要显示时间的推移而不是进程的增加的时候,可以使用Chronometer作为一个计时器。当需要记录用户进行某项操作所消耗的时间的时候,或者在游戏中需要限制时间时候,它将非常实用。
这里,Chronometer对象的format属性可以用来设置显示时间周围的文字。并且只有它的start()在被调用之后才会显示时间及附加文字,要停止计时器可以调用stop()方法。setBase()方法用来设定设置计时器的起点,当将计时器几点设置为0的时候,计时器将从手机上次重启的时刻开始计时。
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:Android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Chronometer android:id="@+id/ChronometerTest" android:layout_width="wrap_content" android:layout_height="wrap_content" android:format="Timer:%s" /> <TextView android:id="@+id/text01" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>MainActivity.java
package org.hualang.chronometer; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.Chronometer; import android.widget.TextView; public class MainActivity extends Activity { /** Called when the activity is first created. */ private Chronometer timer; private TextView text; String DEBUG_TAG; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); text = (TextView)findViewById(R.id.text01); timer = (Chronometer)findViewById(R.id.ChronometerTest); long base = timer.getBase(); Log.d(DEBUG_TAG, "BASE="+base); timer.setBase(0); timer.start(); timer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer chronometer) { // TODO Auto-generated method stub } }); } }运行结果: