为了账号安全,请及时绑定邮箱和手机立即绑定

Android零基础入门第59节:AnalogClock、DigitalClock和TextClock时钟组件 ...

标签:
Android

    在前面一期,我们学习了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代码:

?

01

02

03

04

05

06

07

08

09

10

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

[代码]xml代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

<?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" >

    <DigitalClock

        android:id="@+id/digitalClock"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_centerHorizontal="true"

        android:layout_marginTop="20dp"

        android:textColor="#ff0000"

        android:textSize="30sp" />

</RelativeLayout>

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

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

[代码]xml代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

                xmlns:tools="http://schemas.android.com/tools"

                android:layout_width="match_parent"

                android:layout_height="match_parent" >

    <TextClock

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_marginTop="5dp"

        android:layout_centerHorizontal="true"

        android:gravity="center_horizontal"

        android:format24Hour="yyyy年MM月dd   EE\naa HH:mm:ss"

        android:format12Hour="yyyy年MM月dd   EE\naa hh:mm:ss"

        android:textStyle="normal"

        android:fontFamily="sans-serif-light"

        android:textSize="26sp"

        tools:targetApi="jelly_bean_mr1"/>

</RelativeLayout>

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

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

    今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入Android零基础入门技术讨论微信群,共同成长!

原文链接:http://www.apkbus.com/blog-205190-72653.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消