计时器Chronometer和时钟(AnalogClock和DigitalClock)

(1)Android提供了两个时钟组件:AnalogClock和DigitalClock,DigitalClock继承了TextView组件,也就是说它本身是一个文本框,只是他里面的内容总是当前时间,所以为DigitalClock设置android:text属性没有作用;AnalogClock继承了View组件,重写了View的OnDraw方法,它会在View上绘制模拟时钟。

(2)AnalogClock与DigitalClock的异同:它们都会显示当前的时间。DigitalClock显示数字时钟,会显示当前时间的秒数;AnalogClock显示模拟时钟,不会显示当前时间的秒数。

(3)Android还提供了一个计时器组件:Chronometer,该组件和DigitalClock都继承自TextView,所以它们都会显示出一段文本,但是Chronometer并不显示当前时间,它显示的是从某一个起始时间开始,一共过去了多长时间。

-------案例:

(1)main.xml文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center_horizontal"    android:orientation="vertical" >        <!-- 定义模拟时钟 -->    <AnalogClock         android:layout_width="wrap_content"        android:layout_height="wrap_content"        />        <!-- 定义数字时钟 -->    <DigitalClock         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="14pt"        android:textColor="#f0f"        android:drawableRight="@drawable/ic_launcher"        />        <!-- 计时器  继承自TextView组件,并不是显示当前的时间,显示的是从某个起始时间开始一共过去多长时间-->    <Chronometer         android:id="@+id/meter"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        />        <!-- 点击按钮开始计时 -->    <Button         android:id="@+id/but_start"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="开始"/></LinearLayout>

(2)MainActivity.java文件

package com.yby.clock;import android.app.Activity;import android.os.Bundle;import android.os.SystemClock;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Chronometer;import android.widget.Chronometer.OnChronometerTickListener;import com.yby.clock.R;/** * 时钟AnalogClock和DigitalClock * @author yinbenyang * DigitalClock继承自TextView,显示的总是当前的时间,数字时钟,可以显示当前的秒数 * AnalogClock继承自View组件,重写了View的OnDraw方法,绘制模拟时钟,不会显示当前的秒数 */public class MainActivity extends Activity{    private Button but_start;    private Chronometer meter;        /**     * 案例:手机里的劳力士     * SystemClock是一个获取系统时间的工具类     */    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        but_start = (Button) findViewById(R.id.but_start);        meter = (Chronometer) findViewById(R.id.meter);        but_start.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View v) {                // TODO Auto-generated method stub                //设置开始计时的时间                meter.setBase(SystemClock.elapsedRealtime());                //启动计时器                meter.start();                //将按钮置为禁用                but_start.setEnabled(false);            }        });                //为Chronometer绑定时间监听器        meter.setOnChronometerTickListener(new OnChronometerTickListener() {                        @Override            public void onChronometerTick(Chronometer chronometer) {                // TODO Auto-generated method stub                //计时超过20s                if(SystemClock.elapsedRealtime()-meter.getBase()>20*1000){                    //停止计时器                    meter.stop();                    //设置按钮为启用                    but_start.setEnabled(true);                }            }        });            }}

(3)效果图:

更多相关文章

  1. Android(安卓)3D引擎之min3D--支持材质和UV贴图的objloader
  2. Android(安卓)使用SpannableString显示复合文本
  3. WindowManager和WindowManager.LayoutParams的使用以及实现悬浮
  4. Android(安卓)Studio 修改默认作者信息和可用的模板
  5. Android(安卓)顶部灰条标题栏不显示的方法
  6. listview 设置数组为空
  7. [Android(安卓)机制] 使用Ksoap2访问webservie,设置timeout时间
  8. android 之访问WebService显示手机号码归属地
  9. Android(安卓)Studio故障处理之ADB not responding.

随机推荐

  1. 关于android UDP 客户端与delphi UDP服务
  2. 【Android】Uri、UriMatcher、ContentUri
  3. Android中代码混淆
  4. android 编译过程及错误处理
  5. android dialog用法总结
  6. Android中Textview显示带html文本
  7. Android(安卓)版本号比较
  8. Android(安卓)四大组件之 Activity(1)--
  9. Android(安卓)Exported service does not
  10. 无标题文章