Chronometer是一个「简单的计时器」组件,继承自TextView。但是Chronometer「不显示当前时间」,它显示的是从某个起始时间开始,一共过去了多长时间。
image.png主要XML属性如下:
「android:countDown」 是否倒计时,默认false。
「android:format」 设置显示时间格式。如果指定,第一个 「"%s"」 替换为"MM:SS"或"H:MM:SS"形式的当前计时器值。
常用方法
「start()」:开始计时
「stop()」:停止计时
「setBase(long)」:设置计时器起始时间。
「setFormat(String)」:设置显示时间格式
「setCountDown(boolean)」:设置是否是倒计时(SDK版本大于23)。
「setOnChronometerTickListener(OnChronometerTickListener)」:为计时器绑定事件监听,当计时器改变时触发该监听器。
<Chronometer
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
app:layout_constraintBottom_toTopOf="@+id/toggleButton"
app:layout_constraintEnd_toStartOf="@+id/guideline4"
app:layout_constraintStart_toStartOf="@+id/guideline3"
app:layout_constraintTop_toTopOf="parent" />
时间
views.chronometer.base = SystemClock.elapsedRealtime() //手机从启动系统开始计数,做时间段的统计是最可靠的
views.chronometer.base = System.currentTimeMillis()//UNIX 时间 从1970-1开始,
区别:System.currentTimeMillis()获取的是系统的时间,可以被修改。SystemClock.elapsedRealtime()获取的是系统开机到现在的时间,不能被修改。
使用:System.currentTimeMillis()用于和日期相关的地方,比如日志。SystemClock.elapsedRealtime()用于某个事件经历的时间,比如两次点击的时间间隔。
网友评论