Android使用Chronometer實現計時功能
在Android開發(fā)過程中,計時控件是經?;厥褂玫降?,在Android控件庫中有一個能快捷實現計時功能的控件Chronometer。用于顯示從某個起始時間點開始經過的時間。它繼承自TextView,顯示的是從一個起始時間開始,一共過去了多長時間。
Chronometer方法
- getBase():返回時間。
- setBase(long base):設置計時器的起始時間。
- start():開始計時。
- stop():停止計時。
- setFormat(String format):設置顯示時間的格式,內容可以是"%s",也可以添加額外的文字,如"計時器%s",也可以是"mm:ss"或"hh:mm:ss"。
- setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener):為計時器綁定監(jiān)聽事件。
「注意」 使用Chronometer的stop方法時,只是停止刷新計時器的時間顯示,在后臺并沒有停止計時。再次恢復計時時,并不是從停下的時間開始計時。Chronometer的setFormat(String format)方法并不能改變時間顯示格式,Chronometer顯示格式為00:00:00。
Chronometer使用
- 在布局文件中添加Chronometer控件:
<Chronometer
android:id="@+id/mChronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
- 在Activity或Fragment中獲取Chronometer實例,并設置基本時間:
Chronometer mChronometer = findViewById(R.id.mChronometer);
mChronometer.setBase(SystemClock.elapsedRealtime());
- 啟動計時器:
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mChronometer.start();
}
});
- 停止計時器:
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mChronometer.stop();
}
});
- 設置計時器格式:
mChronometer.setFormat("mm:ss"); // 顯示格式為mm:ss,例如03:45
- 添加計時器監(jiān)聽器:
mChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
@Override
public void onChronometerTick(Chronometer chronometer) {
long elapsedMillis = SystemClock.elapsedRealtime() - chronometer.getBase();
if (elapsedMillis >= 60000) {
// 如果計時器超過了60秒,彈出Toast
Toast.makeText(this, "60秒了", Toast.LENGTH_SHORT).show();
}
}
});
Chronometer使用場景
- 「運動訓練計時」:Chronometer可以用于各種運動訓練中,例如跑步、游泳、健身等。通過記錄每個訓練階段所需的時間,可以更好地掌握自己的訓練進度。
- 「比賽計時」:Chronometer可以用于各種比賽計時中,例如田徑比賽、游泳比賽、車輛競速等。通過記錄每個選手所需的時間,可以更準確地評估他們的表現。
- 「實驗測量」:Chronometer可以用于各種實驗測量中,例如化學反應時間、物理運動時間等。通過記錄每個階段所需的時間,可以更精確地獲得實驗數據。
- 「倒計時功能」:Chronometer也可以用于實現倒計時功能,例如定時器、倒計時器等。通過設置起始時間,并使用Chronometer來顯示經過的時間,可以實現精確的倒計時功能。
- 「時間跟蹤」:在需要跟蹤一段時間的場景下,Chronometer也可以派上用場。例如,跟蹤用戶完成某項任務所花費的時間,或者跟蹤某個事件發(fā)生的時間。
Chronometer控件適用于需要精確計時和時間顯示的場景。它可以提供直觀的時間顯示,并且可以通過編程方式控制計時的起始點和計時長度。