AnalogClock、DigitalClock和TextClock時鐘組件

原文鏈接:https://mp.csdn.net/postedit/97902341

 

在前面一期,我們學習了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文件,在其中填充如下代碼片段:

                     

修改MainActivity裏面的代碼,加載上述定義的佈局文件,然後運行程序,可以看到下圖所示界面效果。

                                                              

二、DigitalClock

AnalogClock是一個錶盤格式的模擬時鐘,而DigitalClock爲數字時鐘。DigitalClock繼承的是TextView,它本身是一個文本框。

接下來通過一個簡單的示例程序來學習DigitalClock的使用。

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

                  

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

                                 

其中format同Java裏面學習的SimpleDateFormat類一樣。android:fontFamily=”sans-serif-light”用於設置安卓字體。

修改MainActivity裏面的代碼,加載上述定義的佈局文件,然後運行程序,可以看到下圖所示界面效果。

                                                                    



另外本人還開設了個人公衆號:JiandaoStudio ,會在公衆號內定期發佈行業信息,以及各類免費代碼、書籍、大師課程資源。

 

                                            

掃碼關注本人微信公衆號,有驚喜奧!公衆號每天定時發送精緻文章!回覆關鍵詞可獲得海量各類編程開發學習資料!

例如:想獲得Python入門至精通學習資料,請回復關鍵詞Python即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章