Android Chronometer(计时器)

转自:https://www.jianshu.com/p/9630285e7cc7

作者:babybus_superdo

android提供了一个计时器组件——Chronometer,继承自TextView。显示的是某个时间点开始以及之后的时间增加。

在XML中配置:

Chronometer的几个主要的方法:

//开始mChronometer.start();//停止mChronometer.stop();//设置初始值(重置)mChronometer.setBase(longbase);//事件监听器,时间发生变化时可进行操作mChronometer.setOnChronometerTickListener();//设置格式(默认"MM:SS"格式)mChronometer.setFormate("%s");

假设计时器每过10S重置:

mChronometer.setOnChronometerTickListener(newOnChronometerTickListener() {@OverridepublicvoidonChronometerTick(Chronometer chronometer){//SystemClock.elapsedRealtime()系统当前时间//chronometer.getBase()记录计时器开始时的时间if((SystemClock.elapsedRealtime() - chronometer.getBase()) >10*1000){                    mChronometer.setBase(SystemClock.elapsedRealtime());                }            }        });

由于Chronometer继承于TextView,所以如果要设置单独SS的格式时可以:

intcurrent =0;mChronometer.setOnChronometerTickListener(newOnChronometerTickListener() {@OverridepublicvoidonChronometerTick(Chronometer chronometer){if(current >4){                  current =0;                }                current ++;                          chronometer.setText(current +"");            }});

如果要设置格式为("HH:MM:SS")则可以通过算法去转换该current:

chronometer.setText(FormatMiss(current));publicstaticStringFormatMiss(int time){Stringhh=time/3600>9?time/3600+"":"0"+time/3600;Stringmm=(time%3600)/60>9?(time%3600)/60+"":"0"+(time%3600)/60;Stringss=(time%3600) %60>9?(time%3600) %60+"":"0"+(time%3600) %60;returnhh+":"+mm+":"+ss;          }

你可能感兴趣的:(Android Chronometer(计时器))