Programming Style

メニュー

初心者がアプリ開発者になるためのプログラミング学習サイト

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

 

android_android-textclock_00

TextClockはデジタル時計を表示させるためクラスです。TextClockを使うと時刻の24時間表示、12時間表示、それぞれの表示内容の指定、もしくは表示時刻のタイムゾーンを指定することができます。ここでは、TextClockの使い方について説明します。

 

広 告

 

目次

前提条件

動作確認端末

  • ASUS Nexus 7 Android 5.1.1 (API22)

1. TextClockの概要

デジタル時計を表示させるためにはTextClockクラスか<TextClock>タグを用います。

 

TextClockクラスはTextViewの子クラスであるため、TextViewのメソッドを使用することができます。<TextClock>タグは<TextView>タグの属性を使用することができます。

 

Note : デジタル時計を表示させる方法としてDigitalClockがありましたが、API17で非推奨になりました。API 17以降は、TextClockを利用するようにしましょう。

 

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"
        />
Note : TextClockを使用する時は、デジタル時計の表示内容が意図しない内容になることを防ぐため、24時間表示・12時間表示の両方を指定すべきです。

 

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にすると、以下のような画面になります。

 

android_android-textclock_01

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

 

android_android-textclock_02

 

広 告