Android Chronometer Format问题

Android系统自带控件Chronometer是一个简单的计时器,它默认的显示格式是00:00(MM:SS),那么我们想要0:00:00(H:MM:SS)这样的显示格式怎么办呢?

官方文档提供了两种方式,一种是在xml布局中使用android:format属性来设置

另外一种是在代码中使用setFormat()方法来设置

但是实际使用中我们会发现这两种方式都不起作用.
所以这里为了达到想要的效果还是要自己写一些代码.

方法一:

        Chronometer timeView;

        timeView.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
            @Override
            public void onChronometerTick(Chronometer cArg) {
                long time =System.currentTimeMillis() - cArg.getBase();
                Date d = new Date(time);
                SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss", Locale.US);
                sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
                timeView.setText(sdf.format(d));
            }
        });
        timeView.setBase(System.currentTimeMillis());
        timeView.start();

方法二:

        Chronometer timeView;

        timeView.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
            @Override
            public void onChronometerTick(Chronometer cArg) {
                long time =System.currentTimeMillis() - cArg.getBase();
                int h = (int) (time / 3600000);
                int m = (int) (time - h * 3600000) / 60000;
                int s = (int) (time - h * 3600000 - m * 60000) / 1000;
                String hh = h < 10 ? "0" + h : h + "";
                String mm = m < 10 ? "0" + m : m + "";
                String ss = s < 10 ? "0" + s : s + "";
                String timeFormat = hh + ":" + mm + ":" + ss;
                meetingView.updateTime(timeFormat);
                timeView.setText(sdf.format(d));
            }
        });
        timeView.setBase(System.currentTimeMillis());
        timeView.start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值