我是靠谱客的博主 糟糕雪碧,最近开发中收集的这篇文章主要介绍Android计时器chronometer-Kotlin版,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

实现计时器的开始、暂停、继续计时和重置功能

实现效果:

51890f7555a2462db22c338a058b3a93.png

 

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版所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部