[Android] TextClock:デジタル時計を表示する

TextClockはデジタル時計を表示させるためクラスです。TextClockを使うと時刻の24時間表示、12時間表示、それぞれの表示内容の指定、もしくは表示時刻のタイムゾーンを指定することができます。ここでは、TextClockの使い方について説明します。
広 告
目次
前提条件
- Android Studioでプロジェクトが作成済であること
- API level 17以上
動作確認端末
- ASUS Nexus 7 Android 5.1.1 (API22)
1. TextClockの概要
デジタル時計を表示させるためにはTextClockクラスか<TextClock>
タグを用います。
TextClockクラスはTextViewの子クラスであるため、TextViewのメソッドを使用することができます。<TextClock>
タグは<TextView>
タグの属性を使用することができます。
2. 24時間表示形式を指定する
デジタル時計の表示形式が24時間表示・12時間表示のどちらかになるかはシステム設定の設定内容に依存します。
TextClockでは24時間表示、12時間表示、それぞれの表示内容を定義することができます。
24時間表示内容を定義するためには、android:format24Hour属性もしくはsetFormat24Hourメソッドを使用します。
android:format24Hour属性の設定例は以下のとおりです。
android:format24Hour属性の設定例
<TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:format24Hour="HH:mm:ss" />
3. 12時間表示形式を指定する
12時間表示内容を定義するためには、android:format12Hour属性もしくはsetFormat12Hourメソッドを使用します。
android:format12Hour属性の設定例は以下のとおりです。
android:format12Hour属性の設定例
<TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:format24Hour="HH:mm:ss" android:format12Hour="hh:mm:ss" />
4. タイムゾーンを指定する
TextClockではデジタル時計のタイムゾーンを指定することができます。タイムゾーンを指定する場合は、android:timeZone属性もしくはsetTimeZoneメソッドを使用します。
android:timeZone属性を使って日本時刻(GMT+900)に設定する例は以下のとおりです。
android:timeZone属性の設定例1
<TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="60sp" android:timeZone="GMT+900" android:format24Hour="HH:mm:ss" android:format12Hour="hh:mm:ss" />
もしくは
android:timeZone属性の設定例2
<TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="60sp" android:timeZone="Asia/Tokyo" android:format24Hour="HH:mm:ss" android:format12Hour="hh:mm:ss" />
5. サンプルコード
デジタル形式で、年月日、時分秒を表示させる例は以下のとおりです。
サンプルコード
<LinearLayout 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" android:orientation="vertical" android:gravity="center" tools:context=".MainActivity"> <TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:textSize="60sp" android:timeZone="Asia/Tokyo" android:format24Hour="yyyy/MM/dd" android:format12Hour="yyyy/MM/dd" /> <TextClock android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="60sp" android:timeZone="GMT+900" android:format24Hour="HH:mm:ss" android:format12Hour="hh:mm:ss" /> </LinearLayout>
システム設定の24時間表示設定をONにすると、以下のような画面になります。

システム設定の12時間表示設定をOFFにすると、以下のような画面になります。
