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();

你可能感兴趣的:(Android,androidbug,android控件)