在前面一期,我们学习了DatePicker和TimePicker,在实际开发中其不能完全满足我们对时间和日期的处理。
如果只是想要显示时间,而不需要用户修改,就可以使用DigitalClock和AnalogClock时钟组件,这2个组件非常有用,使用起来也非常简单,其值可以随时间自动更新。
一、AnalogClock
首先来一起学习AnalogClock组件。AnalogClock继承的是View,实际开发中可重写OnDraw方法。
AnalogClock的XML有3个属性,分别如下:
-
android:dial:模拟时钟的表背景。
-
android:hand_hour:模拟时钟的表时针。
-
android:hand_minute:模拟时钟的表分针。
可以使用系统默认的,也可以自定义图片资源。
接下来通过一个简单的示例程序来学习AnalogClock的使用。
继续使用WidgetSample工程的advancedviewsample模块,首先下载一张表盘图片放在drawable目录,然后在app/main/res/layout/目录下创建analogclock_layout.xml文件,在其中填充如下代码片段:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<AnalogClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:dial="@drawable/dial"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
修改MainActivity里面的代码,加载上述定义的布局文件,然后运行程序,可以看到下图所示界面效果。
二、DigitalClock
AnalogClock是一个表盘格式的模拟时钟,而DigitalClock为数字时钟。DigitalClock继承的是TextView,它本身是一个文本框。
接下来通过一个简单的示例程序来学习DigitalClock的使用。
仍然使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建digitalclock_layout.xml文件,在其中填充如下代码片段: