//开始计时
chronometer.start();
break;
case R.id.btn_stop:
//结束计时
chronometer.stop();
//文字显示
ch_format.setText(“00:00”);
break;
case R.id.btn_reset:
//重置基准时间
chronometer.setBase(SystemClock.elapsedRealtime());
break;
case R.id.btn_format_1:
ch_format.setBase(SystemClock.elapsedRealtime());
ch_format.setCountDown(false);
ch_format.start();
break;
}
}
}
Format格式修改
将Format默认的显示格式是00:00(MM:SS),修改为00:00:00(H:MM:SS)的显示格式。
只要Chronometer发生变化,**「onChronometerTick」**都会被触发,所以我们可以在触发后进行处理。得到我们想要显示样式。
ch_format.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
//当前时间-基准时间
long time = SystemClock.elapsedRealtime()-chronometer.getBase();
Date d = new Date(time);
SimpleDateFormat sdf = new SimpleDateFormat(“HH:mm:ss”, Locale.US);
sdf.setTimeZone(TimeZone.getTimeZone(“UTC”));
//设置为HH:mm:ss格式
ch_format.setText(sdf.format(d));
}
});
源码分析