概述
实现计时器的开始、暂停、继续计时和重置功能
实现效果:
activity.xml代码:
<Chronometer
android:id="@+id/chronometer"
android:layout_width="match_parent"
android:layout_height="312dp"
android:gravity="bottom|center"
android:textColor="#ff0000"
android:textSize="40sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="144dp"
android:gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/start"
android:layout_width="60dp"
android:layout_height="71dp"
android:layout_gravity="center_horizontal"
android:layout_marginRight="20dp"
android:background="@drawable/bg_go"
android:text="开始" />
<Button
android:id="@+id/stop"
android:layout_width="60dp"
android:layout_height="71dp"
android:layout_gravity="center_horizontal"
android:layout_marginRight="20dp"
android:background="@drawable/bg_go"
android:text="暂停" />
<Button
android:id="@+id/countinue"
android:layout_width="60dp"
android:layout_height="71dp"
android:layout_gravity="center_horizontal"
android:layout_marginRight="20dp"
android:background="@drawable/bg_go"
android:text="继续" />
<Button
android:id="@+id/bun4"
android:layout_width="60dp"
android:layout_height="71dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/bg_go"
android:text="重置" />
</LinearLayout>
chronometer.setBase设置计时点 chronometer.getBase返回计时时间 SystemClock.elapsedRealtime()用于某个事件经历的时间,如点击的时间间隔。 继续计时设计思路: 当用户点击暂停的时候获取计时器从开始到当前暂停所用的时间(rangeTime初始为0)rangeTime=SystemClock.elapsedRealtime()-chronometer.getBase();当用户点继续计时的时候,重新设置计时点,获取当前点击的时间减去rangeTime即为要设置的时间,即chronometer.setBase(SystemClock.elapsedRealtime()-rangeTime); 参考:https://blog.csdn.net/lxz26192/article/details/29361625?spm=1001.2014.3001.5506
另外chronometer的监听事件:(我没有用,我就不写了)
chronometer?.setOnChronometerTickListener{}
kotlin代码:
记得绑定控件!!!!!!!
var rangeTime=0
//开始按钮:
start?.setOnClickListener {
chronometer.setBase(SystemClock.elapsedRealtime())
chronometer.start()
}
//暂停按钮:
stop?.setOnClickListener {
rangeTime= (SystemClock.elapsedRealtime()-chronometer.getBase()).toInt()
chronometer.stop()
}
//继续按钮:
countinue?.setOnClickListener {
chronometer.setBase(SystemClock.elapsedRealtime()-rangeTime)
chronometer.start()
}
//重置按钮:
bun4?.setOnClickListener {
chronometer.setText("00:00")
chronometer.setBase(SystemClock.elapsedRealtime())
chronometer.stop()
}
最后
以上就是糟糕雪碧为你收集整理的Android计时器chronometer-Kotlin版的全部内容,希望文章能够帮你解决Android计时器chronometer-Kotlin版所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复