AnalogClock、DigitalClock和TextClock时钟组件

 

在前面一期,我们学习了DatePicker和TimePicker,在实际开发中其不能完全满足我们对时间和日期的处理。

如果只是想要显示时间,而不需要用户修改,就可以使用DigitalClock和AnalogClock时钟组件,这2个组件非常有用,使用起来也非常简单,其值可以随时间自动更新。

AnalogClock、DigitalClock和TextClock时钟组件

一、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文件,在其中填充如下代码片段:

                     AnalogClock、DigitalClock和TextClock时钟组件

修改MainActivity里面的代码,加载上述定义的布局文件,然后运行程序,可以看到下图所示界面效果。

                                                              AnalogClock、DigitalClock和TextClock时钟组件

二、DigitalClock

AnalogClock是一个表盘格式的模拟时钟,而DigitalClock为数字时钟。DigitalClock继承的是TextView,它本身是一个文本框。

接下来通过一个简单的示例程序来学习DigitalClock的使用。

仍然使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建digitalclock_layout.xml文件,在其中填充如下代码片段:

                  AnalogClock、DigitalClock和TextClock时钟组件

修改MainActivity里面的代码,加载上述定义的布局文件,然后运行程序,可以看到下图所示界面效果。

                                                     AnalogClock、DigitalClock和TextClock时钟组件

三、TextClock

DigitalClock从API 17开始就已经过时了,建议使用新组件TextClock。TextClock的功能更加强大,它不仅能显示时间,还能显示日期;而且支持自定义格式。

TextClock提供了两种不同的格式,一种是在24进制中显示时间和日期,另一种是在12进制中显示时间和日期。

TextClock主要有以下几个XML属性:

  • android:format12Hour:设置12时制的格式

  • android:format24Hour:设置24时制的格式

  • android:timeZone:设置时区。

TextClock的主要方法有:

  • getFormat12Hour():在12进制模式中返回时间模式。

  • getFormat24Hour():在24进制模式中返回时间模式。

  • getTimeZone():返回正在使用的时区。

  • is24HourModeEnabled():检测系统当前是否使用24进制。

  • setFormat24Hour(CharSequence format):设置24时制的格式。

  • setFormat12Hour(CharSequence format):设置12时制的格式。

  • setTimeZone(String timeZone):设置时区。

接下来通过一个简单的示例程序来学习TextClock的使用。

仍然使用WidgetSample工程的advancedviewsample模块,在app/main/res/layout/目录下创建textclock_layout.xml文件,在其中填充如下代码片段:

                                 AnalogClock、DigitalClock和TextClock时钟组件

其中format同Java里面学习的SimpleDateFormat类一样。android:fontFamily=”sans-serif-light”用于设置安卓字体。

修改MainActivity里面的代码,加载上述定义的布局文件,然后运行程序,可以看到下图所示界面效果。

                                                                    AnalogClock、DigitalClock和TextClock时钟组件



另外本人还开设了个人公众号:JiandaoStudio ,会在公众号内定期发布行业信息,以及各类免费代码、书籍、大师课程资源。

 

                                            AnalogClock、DigitalClock和TextClock时钟组件

扫码关注本人微信公众号,有惊喜奥!公众号每天定时发送精致文章!回复关键词可获得海量各类编程开发学习资料!

例如:想获得Python入门至精通学习资料,请回复关键词Python即可。