继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

哈士奇WWW
关注TA
已关注
手记 370
粉丝 70
获赞 400

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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP