显示时间和计时器

一。时钟

时钟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);
                }
            }
        });
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值