Android Chronometer

分享到:

Chronometr控件用来实现Android定时器效果,利用此控件可以实现小时,分钟,秒的精确定时,同时也可以作为秒表记时器使用。下面通过实例来了解Chronometr的具体使用方法。

Chronometer实例

XML代码如下:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"
    android:layout_width="wrap_content" android:layout_height="wrap_content">
    <Chronometer android:id="@+id/cher1" android:layout_width="wrap_content"
        android:layout_height="wrap_content"></Chronometer>
    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content">
        <Button android:onClick="onStart" android:text="开始计时" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
        <Button android:onClick="onStop" android:text="停止计时" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
        <Button android:onClick="onReset" android:text="重置" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>    
    </LinearLayout>
</LinearLayout>

java代码如下:

public class ChronometerDemo extends Activity {
            private Chronometer cher1;
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.chronometer);
                cher1 = (Chronometer) findViewById(R.id.cher1);
                cher1.setFormat("计时:%s");
            }
            /**
            * 开始计时
             * @param view
             */
            public void onStart(View view) {
                cher1.start();
            }
            /**
             * 停止计时
             * @param view
             */
            public void onStop(View view) {
                cher1.stop();
            }
            /**
             * 重置
             * @param view
             */
            public void onReset(View view) {
                cher1.setBase(SystemClock.elapsedRealtime());
            }
}

Chronometer重要XML属性:

android:format

格式化字符串:如果指定,计时器将根据这个字符串来显示,替换字符串中第一个"%s"为当前"MM:SS"或 "H:MM:SS"格式的时间显示。如果不指定,计时器将简单的显示"MM:SS" or "H:MM:SS"格式的时间。(如:"This is a Chronometer %s")

Chronometer常用方法:

public long getBase ()
返回先前由setBase(long)设置的基准时间
public String getFormat ()
返回先前由setFormat(String)设置的格式化字符串
public Chronometer.OnChronometerTickListener getOnChronometerTickListener ()
返回这个监听器(可能为空)是用于监听计时器变化的事件
public void setBase (long base)
设置基准时间
参数 base 使用elapsedRealtime()为基准时间
public void setFormat (String format)
设置用于显示的格式化字符串。格式化字符串:如果指定,计时器将根据这个字符串来显示,替换字符串中第一个"%s"为当前"MM:SS"或 "H:MM:SS"格式的时间显示。如果这个格式化字符串为空,或者你从未调用过setFormat()方法,计时器将简单的显示"MM:SS" or "H:MM:SS"格式的时间。(例如:"This is a Chronometer %s")
参数 format 格式化字符串
public void setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener)
设置计时器变化时调用的监听事件。
参数 listener The listener
public void start()
开始计时。不会影响到由setBase(long)设置的基准时间,仅显示视图。即使部件不显示,计时器也会通过定时处理消息来工作。为了确保不发生资源泄漏,用户应确保每个start()方法都有对应的stop()调用
public void stop ()
停止计时。不会影响到由setBase(long)设置的基准时间,仅显示视图。这将停止消息发送,有效地释放计时器运行时start()占用的资源
昵    称:
验证码:

相关文档:

Android控件
Android基础知识
Android组件
Android实例