Date & Time組件(上)


本節引言:

本節帶給大家的是Android給我們提供的顯示時間的幾個控件,他們分別是: TextClock,AnalogClock,Chronometer,另外其實還有個過時的DigitalClock就不講解了! 好的,開始本節內容!


1.TextClock(文字時鐘)

TextClock是在Android 4.2(API 17)後推出的用來取代DigitalClock的一個控制項!
TextClock可以以字串格式顯示目前的日期和時間,因此建議在Android 4.2之後使用TextClock。
這個控制項推薦在24進位的android系統中使用,TextClock提供了兩種不同的格式, 一種是在24進位中顯示時間和日期,另一種是在12進位中顯示時間和日期。大部分人喜歡預設的設定。

可以透過呼叫:TextClock提供的is24HourModeEnabled()方法來查看,系統是否在使用24進位時間顯示! 在24進位模式中:

  • 如果沒取得時間,先透過getFormat24Hour()傳回值;
  • 取得失敗則透過getFormat12Hour()取得傳回值;
  • 以上都取得失敗則使用預設;

另外他給我們提供了下面這些方法,對應的還有get方法:

##

其實更多的時間我們是花在時間形式定義上,就是裡面這個CharSequence! 這裡提供下常用的寫法以及結果:

<TextClock
        android:layout_width="wrap_content"
       /dd/yy h:mmaa"/>
    <TextClock
        android:layout_width="wrap_content"
 :format12Hour="MMM dd, yyyy h :mmaa"/>
    <TextClock
        android:layout_width="wrap_content_content"
      MMMM dd, yyyy h:mmaa"/> ;
    <TextClock
        android:layout_width="wrap_content"
        and dd, yyyy h:mmaa"/>
    <TextClock
        android:layout_width="wrap_content"
        android:layout_height="wrap_contentcontent"#101"> , yyyy h:mmaa"/>
    < TextClock
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"# ;

運行結果:

1.png

#PS:另外minsdk 要大於或等於17喔!


2.AnalogClock(模擬時鐘)

就是下圖這種:

2.png

##官網中我們可以看到這樣三個屬性:

3.png

依序是:表格背景,表格時針,分時針的圖片,我們可以自行自訂:

範例程式碼如下:

<AnalogClock
        android:layout_width="100dp"
      @mipmap/ic_c_bg"
        android:hand_hour="@mipmap/zhen_shi"
        android:hand_minute="@mipmap/zhenfenfen"#/>

運行結果:

4.png


#3.Chronometer(計時器)

如題,就是一個簡單的計時器,我們直接上使用範例:

使用範例:

實作程式碼:

#佈局程式碼:

#
##<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:id="@+id/chronometer"
              android:gravity=" center"
        android:textColor="#ff0000"
        android:textSize="60dip" />
## 「
        android: layout_height="wrap_content"
        android:layout_margin="10dip"
        android:orientation="horizo​​nntal">
#  @+id/btnStart"
            android :layout_width="fill_parent"
            android:layout_height="wrap_content"
       :text="開始記時" />

        <按鈕
           android:id="@+id/btnStop"
            android:lay            android:layout_weight="1"
            android:text="停止記時" />

        <鈕
            android:id="@+id/btnReset"
            android:layout_width="fill_parent"
         android:layout_weight="1"
            android:text="重置" />

        <按鈕
            android:id="@+id/           android:layout_height="wrap_content"
            android :text="格式化" />
    



MainActivity.lickList

公共類別MainActivity擴充實作View.OnCjavaListener ,Chronometer.OnChronometerTickListener{

    private Chronometer chronometer;
    private Button btn_start0 void onCreate(Bundle savedInstanceState) ) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main #  ate void initView() {
計時器 = (計時器) findViewById(R.id.chronometer);
        btn_start = (按鈕) findViewById(R.id.bStart款;
        btn_base = (Button) findViewById(R.id.btnReset);
        btn_format = (Button) findViewById(R.id.b #        btn_start. setOnClickListener( this);
        btn_stop.setOnClickListener(this);
btn_base.setOnClickListener(this);
        btn_format.setOnClickListener(this);

    }
##      switch (v. getId()){
            case R.id.btnStart:
                 break;
            case R.id.btnStop:
           停止計時
                break;
          chronometer.setBase(SystemClock.elapsedRealtime());// 復位
                .btn_format:
                chronometer.setFormat("Time:%s");// 變更時間顯示格式
  }
    }

    @Override
    public void onChronometerTick(Chronometer chronometer) {
        String time = chronometer.getText().toString();
      Toast.makeText(MainActivity.this, "時間到了~",Toast.LENGTH_SHORT).show();
        }
    }
#}

#

運行截圖:

5.png


#本節小結:

本節跟大家簡單的介紹了TextClock,AnalogClock,Chronometer這三個元件,從篇幅就可以看出 其實這幾個東西用得不多,幾乎是沒用過...知道下就好,用法也超簡單... 就這樣吧,本節就到這裡~謝謝

Attribute NameRelated Method#Description
android:format12Hour #setFormat12Hour(CharSequence)設定12時制的格式
##android:format24Hour setFormat24Hour(CharSequence)#設定24時制的格式
android :timeZonesetTimeZone(String)#設定時區