Chronometerは、1秒ごとに時間をカウント アップする単純なタイマーです。カウントをダウンする動作をさせたい場合には、CountDownTimer | Android Developersを継承してクラスを作成することで対応します。
start()で表示の更新を開始、stop()で表示の更新を停止させます。
stop()をすることでカウントが停止するためタイマーが停止したように見えますが、実際には表示の更新を停止させているだけです。次にstart()をすると、その間に経過した時間もカウントされています。これはChronometerが内部ではSystemClock.elapsedRealtimeの時間と、基準時間の差を表示しているにすぎないためです。
カウントの基準時間を設定するsetBase()にSystemClock.elapsedRealtimeを渡すことで、カウントをリセットできます。
chronometer.setBase(android.os.SystemClock.elapsedRealtime())
setFormat()によりタイマーの書式を設定できます。
書式文字列の「%s」の位置に時間が表示されます。時間部分は"MM:SS"の形式で表示され、1時間を超えると"H:MM:SS"の形式になります。なお時間部分の書式は変更できません。
書式文字列 | 表示例 |
---|---|
"ABC %s DEF" |
ABC 1:23:45 DEF%sの位置に時間が表示される。 |
"ABC %s %s" |
1:23:45%sを複数指定すると、書式設定が無視される。 |
"ABC" |
ABC%sを含まないと、時間は表示されない。 |
null |
1:23:45nullを指定すると、既定の表示となる。 |