Chronometer

简介

安卓原生计时器控件,默格式00:00(MM:SS)

属性

格式(官方提供两方式)

  • 布局android:format
  • 代码setFormat()

方法

法一

Chronometer mChronometer;
mChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
    @Override
    public void onChronometerTick(Chronometer cArg) {
        long time =System.currentTimeMillis() - cArg.getBase();
        Date d = new Date(time);
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss", Locale.US);
        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
        timeView.setText(sdf.format(d));
    }
});
timeView.setBase(System.currentTimeMillis());
timeView.start();

法二

Chronometer mChronometer;
mChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
    @Override
    public void onChronometerTick(Chronometer cArg) {
        long time =System.currentTimeMillis() - cArg.getBase();
        int h = (int) (time / 3600000);
        int m = (int) (time - h * 3600000) / 60000;
        int s = (int) (time - h * 3600000 - m * 60000) / 1000;
        String hh = h < 10 ? "0" + h : h + "";
        String mm = m < 10 ? "0" + m : m + "";
        String ss = s < 10 ? "0" + s : s + "";
        String timeFormat = hh + ":" + mm + ":" + ss;
        meetingView.updateTime(timeFormat);
        timeView.setText(sdf.format(d));
    }
});
timeView.setBase(System.currentTimeMillis());
timeView.start();

法三
循环隔一秒操作

Chronometer mChronometer;
mChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
    @Override
    public void onChronometerTick(Chronometer chronometer) {
        if (mRecordPromptCount == 0) {
            textView.setText(getString(R.string.record_in_progress) + ".");
        } else if (mRecordPromptCount == 1) {
            textView.setText(getString(R.string.record_in_progress) + "..");
        } else if (mRecordPromptCount == 2) {
            textView.setText(getString(R.string.record_in_progress) + "...");
            mRecordPromptCount = -1;
        }
        mRecordPromptCount++;
    }
});

使用

布局

<Chronometer
    android:id="@+id/cRecordPopTime"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="@dimen/d24"
    android:fontFamily="sans-serif-light"
    android:textColor="@color/fontHint"
    android:textSize="@dimen/s13"
    tools:targetApi="jelly_bean" />

主代码

// timer zero
cRecordPopTime.setBase(SystemClock.elapsedRealtime());
// start Chronometer
cRecordPopTime.start();

// stop Chronometer
cRecordPopTime.stop();
// timer zero
cRecordPopTime.setBase(SystemClock.elapsedRealtime());

猜你喜欢

转载自blog.csdn.net/zsp_android_com/article/details/80709597