一。时钟
时钟UI组件是2个非常简单的组件:TextClock本身就继承TextView——也就是说,它本身就是文本框,只是它里面的内容总是显示的是当前的时间。与Textview不同的是,为TextClock设置text属性没有什么卵用。
TextView取代早期的DigitalClock组件,因此功能更加1强大——TextClock能以24小时制和12小时制来显示时间,而且可以由程序员指定时间格式。
AnalogClock则继承View组件,它重写View的onDraw()方法,它会在View上绘制模拟时钟。
TextView和AnalogText都会显示当前时间。不同的是,TextView显示的是数字时钟,可以显示当前的秒数;Analog显现的时模拟时钟,不会显示当前秒数。
<TextClock android:text="10sp" android:textColor="#f0f" android:format24Hour="yyyy年MM月dd日 H:mma EEEE" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <AnalogClock android:layout_width="wrap_content" android:layout_height="wrap_content" />
二。计时器(Chronometer)
Android还提供额一个计时器组件:Chronometer,该组件与TextClock都继承自TetxView,因此他们偶会显示一段我呢本
。单Chronometer并不现实当前时间,它显示的是从某一起始使劲按开始,一共过去了多少时间。
Chronometer的用法也很简单,它只提供一个android:format属性,用于指定计时器的计时格式。除此之外
CHronometer还支持如下常用方法。
>setBase(long base) :设置计时器的起始时间。
>setFormat(String format) :设置显示的时间格式。
>start() :开始计时。
>stop() :停止计时。
>setOnChronometerTickListener(Chronometer.OnChronometerTickListeerner):
为计时器绑定事件监听器,当计时器改变时,触发该监听器。
下面的程序简单示范了Chronometer的用法。该程序界面中定义了一个Chronometer组件和一个TextView组件
当用户单机TextView时系统开始计时,当计时超过20秒时停止计时。
public class MainActivity extends Activity { TextView textView; Chronometer chronometer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView= (TextView) findViewById(R.id.tv_for_chronometer); chronometer= (Chronometer) findViewById(R.id.test); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //设置开始计时时间 chronometer.setBase(SystemClock.elapsedRealtime()); //启动计时器 chronometer.start(); textView.setEnabled(false); } }); //为Chronometer绑定事件监听器 chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer chronometer) { //如果从开始计时到现在超过20秒 if(SystemClock.elapsedRealtime()-chronometer.getBase()>20*1000){ chronometer.stop(); textView.setEnabled(true); } } }); } }