Chronometer 定时器

作者: 穿越平行宇宙 | 来源:发表于2019-04-19 20:30 被阅读3次

    Chronometer是一个简单的定时器,可以通过setBase()来给它一个基准时间,并从该时间开始计数;如果不给基准时间,将使用调用start()方法时的时间。默认将显示当前"MM:SS"或 "H:MM:SS"格式的时间,当然也可以自定义字符串来格式化显示。

    • Chronometer的一个比较重要的XML属性如下:

    android:format:设置时间的格式如: hh:mm:ss。

    • Chronometer的一些常用方法如下:

    setBase(long base):设置倒计时定时器。

    setFormat(String format):设置显示时间的格式。

    start():开始计时。

    stop():停止计时。

    • 在使用Chronometer时,如果希望监控该组件的时间,则可调用Chronometer的 setOnChronometerTickListener()方法为此组件的点击事件添加事件监听器。

    接下来通过一个简单的示例程序来学习Chronometer的使用。

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="onStart"
                android:text="开始计时"
                tools:ignore="OnClick" />
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="onStop"
                android:text="停止计时"
                tools:ignore="OnClick" />
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:onClick="onReset"
                android:text="重置"
                tools:ignore="OnClick" />
        </LinearLayout>
    
        <Chronometer
            android:id="@+id/chronometer"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="15dp" />
    
    
    </LinearLayout>
    

    MainActivity.java

    import android.os.Bundle;
    import android.os.SystemClock;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Chronometer;
    
    public class MainActivity extends AppCompatActivity {
    
        private Chronometer mChronometer = null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
        }
    
        private void initView() {
            mChronometer = (Chronometer) findViewById(R.id.chronometer);
            //setFormat设置用于显示的格式化字符串。
            //替换字符串中第一个“%s”为当前"MM:SS"或 "H:MM:SS"格式的时间显示。
            mChronometer.setFormat("计时:%s");
    
        }
    
        // 开始计时
        public void onStart(View view) {
            mChronometer.start();
        }
        // 停止计时
        public void onStop(View view) {
            mChronometer.stop();
        }
        // 重置
        public void onReset(View view) {
            //setBase 设置基准时间
            //设置参数base为SystemClock.elapsedRealtime()即表示从当前时间开始重新计时)。
            mChronometer.setBase(SystemClock.elapsedRealtime());
        }
    
    
    }
    
    

    运行程序,可以看到下图所示界面效果。


    image.png

    相关文章

      网友评论

        本文标题:Chronometer 定时器

        本文链接:https://www.haomeiwen.com/subject/pqacgqtx.html