05 - 基本控件:Clock时钟(AnalogClock、DigitalClock)、Chronometer计时器

来源:互联网 发布:dnf淘宝辅助怎么样 编辑:程序博客网 时间:2024/04/29 16:55

转载注明出处:http://blog.csdn.net/eana_don/article/details/8281347

参考资料:《疯狂Android讲义》,官网API

一、Clock时钟

1.模拟时钟AnalogClock

AnalogClock是一种模拟时钟,不会显示出秒数,但形成一个动态的时针走向,这是因为它继承了View组件,并重写了OnDraw方法。(当我们需要自定义的组件时,也可以这么做。)
a.布局
<AnalogClock        android:layout_width="wrap_content"         android:layout_height="wrap_content"        />


b.代码控制
暂无

c.运行结果


2.数字时钟DigitalClock

数字时钟集成了TextView,以文本显示的形式将时间显示出来,它可以显示出具体秒数
a.布局
<DigitalClock     android:layout_width="wrap_content"         android:layout_height="wrap_content"    android:textSize="14pt"/>


b.代码控制
暂无

c.运行结果


二、Chronometer计时器

计时器是一种不关心当前时间,只关心从某个时间点起,一共过去了多长时间的控件。Chronometer多数情况下需要与按钮结合使用。比如制作一个 跑步计时器,就需要一个按钮点击开始计时,再次点击后结束计时。

a.布局
<ToggleButton         android:textOn="停止计时"        android:textOff="开始计时,20秒后自动停止"        android:id="@+id/tbtn_toggle"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:checked="false"/><Chronometer     android:id="@+id/chronometer"    android:layout_width="wrap_content"         android:layout_height="wrap_content"/>


b.代码控制
package cn.don.userinterface;import android.app.Activity;import android.os.Bundle;import android.os.SystemClock;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Chronometer;import android.widget.CompoundButton;import android.widget.LinearLayout;import android.widget.ToggleButton;import android.widget.Chronometer.OnChronometerTickListener;import android.widget.CompoundButton.OnCheckedChangeListener;public class ClockActivity extends Activity {private Chronometer chronmeter;private ToggleButton tbtn;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_clock);        chronmeter = (Chronometer) findViewById(R.id.chronometer);        tbtn = (ToggleButton)findViewById(R.id.tbtn_toggle);                //使用开关按钮开启计时或者关闭及时        tbtn.setOnCheckedChangeListener(        new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {// TODO Auto-generated method stubif(isChecked){//设置开始计时的时间chronmeter.setBase(SystemClock.elapsedRealtime());//启动计时器chronmeter.start();} else{chronmeter.stop();}}}        );                //响应计时器的Tick事件,可以在这里控制当计时器正在计时时要做的操作        chronmeter.setOnChronometerTickListener(        new OnChronometerTickListener() {@Overridepublic void onChronometerTick(Chronometer chronometer) {// TODO Auto-generated method stub//设置20秒后自动停止计时器if(SystemClock.elapsedRealtime() - chronometer.getBase() > 20 * 1000){chronometer.stop();//设置开关按钮恢复未开启状态tbtn.setChecked(false);}}}        );    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_clock, menu);        return true;    }    }


c.运行结果




原创粉丝点击