Chronometer实现计时器的开始停止重置功能

2 篇文章 0 订阅
订阅专栏

用Chronomete实现计时器功能

一、项目要求

1.完成Chronometer的显示和控制。
2.击开始按钮后,开始显示当前时间,并进行读秒计时,要求一定要显示中文星期,并且能够根据当前的日期,通过程序自动设置。
3.点击停止按钮后,显示当前时间,停止读秒计时
4.点击重置按钮后,显示初始状态,停止读秒计时

二、布局设计

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    >
    <Chronometer
        android:id="@+id/ch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:orientation="horizontal">

        <Button
            android:id="@+id/bt_start"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开始计时" />

        <Button
            android:id="@+id/bt_stop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="停止计时" />

        <Button
            android:id="@+id/bt_reset"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="重置" />

    </LinearLayout>

    <TextClock
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/t_c"
        android:format24Hour="yyyy-MM-dd HH:mm:ss EEEE"
        android:visibility="gone"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/t_v"
        android:visibility="visible"
        android:text="初始状态"
        />
</LinearLayout>

注意事项: android :visibility的使用,如下:

可见(visible)

XML文件:android:visibility="visible"

Java代码:view.setVisibility(View.VISIBLE);

不可见(invisible)

XML文件:android:visibility="invisible"

Java代码:view.setVisibility(View.INVISIBLE);

隐藏(GONE)

XML文件:android:visibility="gone"

Java代码:view.setVisibility(View.GONE);

效果图:



三、MainActivity

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
        TextClock t_c;
        TextView t_v;
        Button but_start;
        Button but_stop;
        Button but_reset;
        Chronometer ch;
        long stopTime;
        boolean flag=false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
        ch= (Chronometer) findViewById(R.id.ch);
        but_start=(Button) findViewById(R.id.bt_start);
        but_stop=(Button) findViewById(R.id.bt_stop);
        but_reset=(Button) findViewById(R.id.bt_reset);
        t_v=(TextView) findViewById(R.id.t_v);
        t_c=(TextClock) findViewById(R.id.t_c);
        //注册监听器
        but_start.setOnClickListener(this);
        but_stop.setOnClickListener(this);
        but_reset.setOnClickListener(this);
        ch.setOnClickListener(this);
        ch.setFormat("计时:%s");
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt_start:
                if (!flag){
                    flag=!flag;
                    if (stopTime!=0) {//设置开始时间
                        ch.setBase(ch.getBase()+(SystemClock.elapsedRealtime()-stopTime));
                    }else{
                        ch.setBase(SystemClock.elapsedRealtime());
                    }
                    ch.start();
                    but_start.setEnabled(false);
                    t_c.setVisibility(View.VISIBLE);
                    t_v.setVisibility(View.INVISIBLE);
                }
                break;
            case R.id.bt_stop:
                if(flag){
                    flag=!flag;
                    ch.stop();
                    stopTime = SystemClock.elapsedRealtime();
                    but_start.setEnabled(true);

                }


                break;
            case R.id.bt_reset:
                ch.stop();
                ch.setBase(SystemClock.elapsedRealtime());
                stopTime=0;
                flag=false;
                but_start.setEnabled(true);
                t_v.setVisibility(View.VISIBLE);
                t_c.setVisibility(View.GONE);
        }
    }

四、设计思路:

1.当点击停止按钮时,应当减去停止的时间
2.对重置按钮是否点击进行记录,否则会出现负数ude形式。

五、效果展示:


六、项目源代码

计时器
计时器Chronometer
wwke_977的博客
12-07 940
Chronometer的用法很简答,它只提供了一个android:format属性,用于指定计时器的计时格式。 Chronometer有一下常用方法: 1.setBase(long base):设置计时器的起始时间; 2.setFormat(String format):设置显示时间格式; 3.start():开始计时; 4.stop():停止计时; 5.setOnChronometerTickListen(Chronometer.OnChronometerTickListener listener):为计
js计时器(开始计时、停止计时、重置)
02-20
计时器实现,有开始计时、停止计时、重置功能
Chronometer
jushenziao的博客
10-11 398
在Android的SDK中,为我们提供了一个计时器,这个计时器称为Chronometer,我们可以成它为Android的一个组件,同时它也具备自己独有的方法 在Android的SDK中,为我们提供了一个计时器,这个计时器称为Chronometer,我们可以成它为Android的一个组件,同时它也具备自己独有的方法。下面我们举例介绍下这个计时器的使用以及常用的方法。 跟其他UI组
Android自定义Chronometer实现短信验证码秒表倒计时功能.docx
01-11
- `mReStart`标志用于在重新开始计时器重置剩余时间。 - `mVisible`检查视图是否可见,确保在视图不可见时暂计时。 - `mIsEnable`可能用于禁用或启用计时器,防止不必要的操作。 4. **方法详解**: - `...
学习使用Android Chronometer计时器
12-06
在这个例子中,点击“开始计时”按钮会启动Chronometer,点击“停止计时”按钮会停止,而点击“重新开始计时”按钮会将基点重置为当前时间并再次启动计时器。 总的来说,Android Chronometer提供了一种简单的方式来...
Android计时器chronometer使用实例讲解
09-02
在这个例子中,我们创建了五个按钮,分别对应于计时器的启动、停止重置、设置格式和清除格式功能。点击“开始”按钮时,调用`mChronometer.start()`启动计时;点击“停止”按钮,调用`mChronometer.stop()`停止...
Android实战教程第四十篇之Chronometer实现倒计时
09-01
首先,我们需要创建一个XML布局文件,如上文所示,包含一个Chronometer组件以及三个按钮,分别用于开始、停止重置计时器Chronometer的ID为`myChronometer`,而按钮的ID分别为`btnStart`、`btnStop`和`btnBase`。...
Chronometer实现计时器 开始、暂停止功能
Happy_ju_an的博客
06-11 820
需要实现一个计时器功能,包含开始、暂停止功能,且开始和暂是一个控件,至于为啥,设计就是这样的,木有办法。 首先想到的是Chronometer,那就用它吧,直接老规矩上代码,方便以后复制粘贴 页面是这样的 点开始的时候开始计时,文字变成暂,结束不显示 点暂的时候暂计时,结束显示,此时点暂继续计时页面如上行,点结束结束计时 不会传gif,就这样吧 java文件 public class MainActivity extends AppCompatActivity {
android利用Chronometer实现倒计时(已封装,可直接使用)
02-08
项目需要实现一个计时的功能,利用Chronometer虽然可以很方便的实现计时功能,但需要的却是一个倒计时控件. 百度了一下方法不少,倒计时的却没有,于是用Chronometer封装了一个倒计时的类,本着开源的精神,分享给大家!
关于Chronometer(计时器)暂的问题
fengyuzhengfan的专栏
08-13 8484
当通过stop()方法实现计时器时,在通过start()方法继续计时的时候,会出现计时器显示的时间不是暂前的时间。
笔记 Chronometer计时器:
兔丸的博客
06-20 274
该组件继承于TextView 该组件用于显示一串文本,该文本为从某个时间开始,到现在一共过去的了多长时间 Chronometer的XML属性: android:format 用于指定显示时间格式,其属性值可以设置为%s,表示显示MM:SS或者H:MM:SS格式的时间 使用Chronometer组件时常用的方法: setBase():用于设置计时器的起始位置 setFormat():用于设置显...
Chronometer实现计时
丿灬安之若死
01-06 1672
上图 主代码  package com.example.tuya; import android.graphics.Color; import android.os.Bundle; import android.os.SystemClock; import android.support.v7.app.AppCompatActivity; import android.view.Gr
【Android】Chronometer计时器实现计时、停止、暂重置功能
weixin_41893647的博客
05-31 6806
Chronometer的用法很简单,它支持如下用法: getBase():返回时间。 setBase(long base):设置计时器的起始时间。 start():开始计时。 stop():停止计时。 setFormat(String format):设置显示时间的格式。 setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener):为计时器绑定监听事件。
Chronometer控件
11-03 151
Chronometer定时器控件 [img]http://dl.iteye.com/topics/download/7296cf6f-c27f-3f0a-b7f3-63b52f5ab06a[/img] [code="xml"] [/code] ...
Chronometer的使用
mygod2008ok的专栏
03-31 832
Chronometer控件布局文件如下&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" ...
【Android】使用Chronometer组件实现一个简单的计时器
热门推荐
欲买桂花同载酒,终不似,少年游。
10-11 1万+
Chronometer类可以实现一个简单的计时器。 可以通过elapsedRealtime()来给它一个基准时间,并从该时间开始计数。 如果你不给它基准时间,它将使用你调用start()时的时间。 默认它将显示当前"MM:SS"或 "H:MM:SS"格式的时间,或者你能通过setFormat(String)设置一个任意字符串来格式化显示计时器显示的时间。 Activity p
计时器Chronometer)的功能和用法
desirelll的博客
03-10 1595
Android提供了一个计时器组件:Chronometer,该组件与TextClock都继承自TextView,因此他们都会显示一段文本。但Chronometer并不显示当前时间,他显示的是从某个起始时间开始,一共过去了多长时间。 Chronometer的用法也很简单,他只提供了一个android:format属性,用于指定计时器的计时格式。除此之外,还支持如下常用方法。 setBase(lo
写文章

热门文章

  • Chronometer实现计时器的开始停止重置功能 2103
  • Android实现省市区三级联动效果Spinner 1953
  • centos下安装db2 761
  • 项目实战----基于文件存储的学生信息管理(IO) 443
  • Java IO (一)文件、文件夹的基本常识与常用方法 371

分类专栏

  • Git 1篇
  • Redis
  • DB2 1篇
  • SpringBoot
  • Android 2篇
  • Java 进阶 2篇
  • 项目实战 1篇

最新评论

  • 项目实战----基于文件存储的学生信息管理(IO)

    m0_57736728: 第二个类的13到18行就是这样的?还是说需要自己补代码进去?

  • centos下安装db2

    我哥哥贼牛批: 用户名跟密码是什么呢

  • Android实现省市区三级联动效果Spinner

    梓刻: 就喜欢你这种直来的人,代码拿来就能用了

最新文章

  • git配置github托管,及项目上传
  • Redis在Centos下安装
  • centos下安装db2
2020年1篇
2019年6篇
2017年2篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家赣州玻璃钢景观雕塑西城玻璃钢动物雕塑新余水果玻璃钢雕塑定制新奇的玻璃钢雕塑拉萨玻璃钢雕塑厂家哪里有玻璃钢彩绘雕塑生产供应玻璃钢动物雕塑哪家有合肥景观玻璃钢雕塑定做价格台湾玻璃钢雕塑制作厂家广场玻璃钢雕塑供货厂家蚌埠玻璃钢雕塑制作玻璃钢雕塑容易坏吗玻璃钢人物雕塑供应定西城市玻璃钢雕塑厂家长沙哪里有玻璃钢雕塑大型玻璃钢雕塑厂家工厂商场美陈英文缩写南京黑白玻璃钢花盆玻璃钢五彩牛雕塑佛山哪里有批发玻璃钢花盆玻璃钢雕塑的工艺品广东公园玻璃钢雕塑海南玻璃钢雕塑清洗材质好的玻璃钢卡通雕塑主题商场美陈研发公司湛江玻璃钢龙雕塑海洋玻璃钢雕塑价格玻璃钢艺术雕塑款式多思艺玻璃钢雕塑艺术图片山西城市标志玻璃钢雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化