android学习笔记(20)时钟(AnalogClock 和 DigitalClock )的功能与功法

2014-12-12 13:09:39     13 人阅读    

时钟UI组件是两个非常简单的组件,DigitalClock本身就继承了 TextView,本身属于文本框,只是它里面显示的内容是当前时间:AnalogClock则继承了 View组件, 它重写了 View的OnDraw方法,它会在View上显示模拟时钟。
DigitalClock和AnalogClock都会标示当前时间。不同的是,DigitalClock显示数字时钟, 可以显示当前的秒数;AnalogClock显示模拟始终,不会显示当前秒数。
下面的例子简单示范了 AnalogClock和DigitalClock的用法。
程序清单:res\layout\main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:gravity="center_horizontal"
 >
<!-- 定义模拟时钟 -->
<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"
 /> 
</LinearLayout>

正如从上面的粗体字代码中看到的,如果想控制模拟时钟显示时间的字体大小、字体颜format属性,用于指定计时器的计时格式。除此之外,Chronometer支持如下常用方法。
setBase(longbase):设置计时器的起始时间。
setFormat(String format):设置显示时间的格式。
start():开始计时。
stop〇:停止计时。
setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener):为计时器绑定事件监听器,当计时器改变时触发该监听器。
下面的程序简单示范了 Chronometer的用法,该程序界面中定义了一个Chronometer组件 和一个Button组件。当用户单击Button时系统开始计时,当计时超过20秒时停止计时。下面 是该程序的代码。
程序清单:src\org\crazyit\time\ChronometerTest.java

package org.crazyit.time;
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;
public class ChronometerTest extends Activity
{
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  //获取计时器组件
  final Chronometer ch = (Chronometer)findViewById(R.id.test);
  //获取“开始”按钮
  Button start = (Button)findViewById(R.id.start);
  start.setOnClickListener(new OnClickListener()
  {
   @Override
   public void onClick(View source)
   {
    //设置开始计时时间
    ch.setBase(SystemClock.elapsedRealtime());
    //启动计时器
    ch.start();    
   }
  }); 
  ch.setOnChronometerTickListener(new OnChronometerTickListener()
  {
   @Override
   public void onChronometerTick(Chronometer ch)
   {
    //如果从开始计时到现在超过了20s。
    if(SystemClock.elapsedRealtime() - ch.getBase()
      > 20 * 1000)
    {
     ch.stop();
    }
   }
  });
 }
}

上面的程序中粗体字代码用于设置Chronometer的起始时间,并启动Chronometer。
程序中用到的SystemClock类仅仅是一个获取系统时间、运行时间的工具类,用法很简 单,读者自行查阅API文档即可。


原文地址:http://www.itmmd.com/201412/305.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

产品经理学习笔记(9)-产品经理离用户有多远   上一篇
下一篇  android学习笔记(19)开关按钮(ToggleButton )的 功能与用法

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!