Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> android 中文 api (43) —— Chronometer

android 中文 api (43) —— Chronometer

編輯:Android開發實例

前言

  本章內容是 android.widget.Chronometer,譯為"計時器",版本為Android 2.2 r1 。期待你一起參與Android API 的中文翻譯,聯系我[email protected]。

 

正文

  一、結構

    public class Chronometer extends TextView

 
 

    java.lang.Object

    android.view.View

      android.widget.TextView

        android.widget.Chronometer

 

  二、概述

    
 

  類實現了一個簡單的計時器。

    你可以通過elapsedRealtime()給它一個基准時間,並從該時間開始計數。如果你不給它基准時間,它將使用你調用start()時的時間。默認它將顯示當前"MM:SS"或 "H:MM:SS"格式的時間,或者你能通過setFormat(String)設置一個任意字符串來格式化顯示計時器顯示的時間。

 

  三、XML屬性

屬性名稱

描述

android:format

格式化字符串:如果指定,計時器將根據這個字符串來顯示,替換字符串中第一個“%s”為當前"MM:SS"或 "H:MM:SS"格式的時間顯示。如果不指定,計時器將簡單的顯示"MM:SS" or "H:MM:SS"格式的時間。(譯者注:如:“This is a Chronometer %s”

 

  四、構造函數

 

         public Chronometer (Context context)

  初始化計時器對象。設置當前時間為基准時間。(譯者注:通過程序動態創建計時器對象)

 

  public Chronometer (Context context, AttributeSet attrs)

  初始化標准視圖布局信息。設置當前時間為基准時間。(譯者注:指通過XML來指定一個計時器)

 

  public Chronometer (Context context, AttributeSet attrs, int defStyle)

    初始化標准視圖布局信息和風格。設置當前時間為基准時間。 

 

  五、公共方法

 

         public long getBase ()

         返回先前由setBase(long)設置的基准時間。

 

         public String getFormat ()

         返回先前由setFormat(String)設置的格式化字符串。

 

         public Chronometer.OnChronometerTickListener getOnChronometerTickListener ()

                   返回值

                            返回這個監聽器(可能為空)是用於監聽計時器變化的事件。

 

         public void setBase (long base)

         設置基准時間(譯者注:基准時間為真正意義上開始計時的時間,而不是調用start時時間,比如調用本函數並設置參數base為SystemClock.elapsedRealtime()即表示從當前時間開始重新計時)。

                   參數

                            base        使用elapsedRealtime()為基准時間

 

         public void setFormat (String format)

         設置用於顯示的格式化字符串。格式化字符串:如果指定,計時器將根據這個字符串來顯示,替換字符串中第一個“%s”為當前"MM:SS"或 "H:MM:SS"格式的時間顯示。如果這個格式化字符串為空,或者你從未調用過setFormat()方法,計時器將簡單的顯示"MM:SS" or "H:MM:SS"格式的時間。(譯者注:如:"This is a Chronometer %s"

                   參數

                            format    格式化字符串

 

         public void setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener)

         設置計時器變化時調用的監聽事件。

                   參數

                            listener  The listener.

 

         public void start ()

         開始計時。不會影響到由setBase(long)設置的基准時間,僅顯示視圖。即使部件不顯示,計時器也會通過定時處理消息來工作。為了確保不發生資源洩漏,用戶應確保每個start()方法都有對應的stop()調用(譯者注:有一個start就有一個stop)。(譯者注:start只是顯示計時,實際上計時是從基准時間開始的,所以通過stop停止計時若干秒後再start時,顯示的計時會突然跳到當前顯示的計時後的若干秒後繼續計時,見此帖子。)

 

         public void stop ()

         停止計時。不會影響到由setBase(long)設置的基准時間,僅顯示視圖。這將停止消息發送,有效地釋放計時器運行時start()占用的資源。

 

  六、受保護方法

 

         protected void onDetachedFromWindow ()

         視圖從窗體上移除時調用,同時窗體表面不再顯示視圖。

 

         protected void onWindowVisibilityChanged (int visibility)

         當窗體中視圖的可視性(GONE, INVISIBLE, VISIBLE)發生改變時調用。注意它將告訴你你的窗口是否可以被窗口管理器識別,這並不能說明窗口是否被屏幕上的其他窗口遮擋,即使它本身是可見的。

                   參數

                            visibility 窗口新的可見性

 

  七、補充

    文章鏈接

      android中的時間服務–Chronometer計時器服務

    示例代碼

      Java文件

  1.     public class ChronometerDemo extends Activity {  
  2.             private Chronometer cher1;  
  3.             @Override 
  4.             protected void onCreate(Bundle savedInstanceState) {  
  5.                 super.onCreate(savedInstanceState);  
  6.                 setContentView(R.layout.chronometer);  
  7.                 cher1 = (Chronometer) findViewById(R.id.cher1);  
  8.                 cher1.setFormat("計時:%s");  
  9.             }  
  10.             /**  
  11.             * 開始計時  
  12.              * @param view  
  13.              */ 
  14.             public void onStart(View view) {  
  15.                 cher1.start();  
  16.             }  
  17.             /**  
  18.              * 停止計時  
  19.              * @param view  
  20.              */ 
  21.             public void onStop(View view) {  
  22.                 cher1.stop();  
  23.             }  
  24.             /**  
  25.              * 重置  
  26.              * @param view  
  27.              */ 
  28.             public void onReset(View view) {  
  29.                 cher1.setBase(SystemClock.elapsedRealtime());  
  30.             }  
  31.     }  
      XML文件
  1.     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" 
  2. android:layout_width="wrap_content" android:layout_height="wrap_content"> 
  3. <Chronometer android:id="@+id/cher1" android:layout_width="wrap_content" 
  4.     android:layout_height="wrap_content"></Chronometer> 
  5. <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> 
  6.     <Button android:onClick="onStart" android:text="開始計時" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 
  7.     <Button android:onClick="onStop" android:text="停止計時" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> 
  8.     <Button android:onClick="onReset" android:text="重置" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>      
  9. </LinearLayout> 
  10. nearLayout> 

轉自:http://www.cnblogs.com/over140/archive/2010/11/22/1883736.html
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved