Android Chronometer Format问题

来源:互联网 发布:mac桌面不见 编辑:程序博客网 时间:2024/06/05 05:54

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();
1 0
原创粉丝点击