Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> android中的時間服務–Chronometer計時器服務

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

編輯:Android開發實例

在Android SDK中提供了多種時間服務。這些時間服務主要處理在一定時間間隔或未來一時間發生的任務。Android系統中的時間服務的作用域既可以是應用程序本身,也可以是整Android系統。

Chronometer計時器服務

Chronometer是TextView的子類,也是一個Android組件。這個組件可以用1秒的時間間隔計時,並顯示出計時結果。

Chronometer類有3個重要的方法:start、stop和setBase,其中start方法表示開始計時;stop表示停止計時;setBase方法表示重新計時。start和stop方法沒有任何參數,setBase方法有參數,表示開始計時的基准時間。如果要從當前時刻重新計時,可以將該參數值設為temClock.elapsedRealtime()。

還可以對Chronometer組件做進一步設置。在默認情況下,Chronometer組件只輸出MM:SS:MM:SS的時間格式。例如,當計時到1分20秒時,Chronometer組件會顯示01:20。如果變顯示的信息內容,可以使用Chronometer類的setFormat方法。該方法需要一個String變並使用“%s”表示計時信息。例如,使用setFormat(“計時信息:%s”)設置顯示信息,Chronometer會顯示計時信息:(計時信息:10:20)。

Chronometer組件還可以通過onChronometerTick事件方法來捕捉計時動作。該方法1秒調一次。要想使用onChronometerTick事件方法,必須實現接口:android.widget.Chronometer.OnChronometerTickListener

ChronometerDemo.java

 

  1. public class ChronometerDemo extends Activity {  
  2.     private Chronometer mChronometer;//創建一個計時器對象  
  3.     private Button button;  
  4.     @Override 
  5.     protected void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         setContentView(R.layout.chronometer);  
  8.         mChronometer = (Chronometer) findViewById(R.id.chronometer);//將計時器對象實體化  
  9.     }  
  10.     /**初始化按鈕Button組件*/ 
  11.     public void initWidget(){  
  12.         // Watch for button clicks.  
  13.         button = (Button) findViewById(R.id.start);  
  14.         button.setOnClickListener(mStartListener);  
  15.  
  16.         button = (Button) findViewById(R.id.stop);  
  17.         button.setOnClickListener(mStopListener);  
  18.  
  19.         button = (Button) findViewById(R.id.reset);  
  20.         button.setOnClickListener(mResetListener);  
  21.  
  22.         button = (Button) findViewById(R.id.set_format);  
  23.         button.setOnClickListener(mSetFormatListener);  
  24.  
  25.         button = (Button) findViewById(R.id.clear_format);  
  26.         button.setOnClickListener(mClearFormatListener);  
  27.     }  
  28.  
  29.     View.OnClickListener mStartListener = new OnClickListener() {  
  30.         public void onClick(View v) {  
  31.             mChronometer.start();//計時器開始  
  32.         }  
  33.     };  
  34.  
  35.     View.OnClickListener mStopListener = new OnClickListener() {  
  36.         public void onClick(View v) {  
  37.             mChronometer.stop();//計時器暫停  
  38.         }  
  39.     };  
  40.  
  41.     View.OnClickListener mResetListener = new OnClickListener() {  
  42.         public void onClick(View v) {  
  43.             //計時器重置為0  
  44.             mChronometer.setBase(SystemClock.elapsedRealtime());  
  45.         }  
  46.     };  
  47.  
  48.     View.OnClickListener mSetFormatListener = new OnClickListener() {  
  49.         public void onClick(View v) {  
  50.             //改變計時器顯示內容方式  
  51.             mChronometer.setFormat("Formatted time (%s)");  
  52.         }  
  53.     };  
  54.  
  55.     View.OnClickListener mClearFormatListener = new OnClickListener() {  
  56.         public void onClick(View v) {  
  57.             //恢復原來計時器顯示方式  
  58.             mChronometer.setFormat(null);  
  59.         }  
  60.     };  
  61. }  
chronometer.xml
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" android:padding="4dip" android:gravity="center_horizontal" 
  4.     android:layout_width="fill_parent" android:layout_height="fill_parent"> 
  5.     <Chronometer android:id="@+id/chronometer" 
  6.         android:format="@string/chronometer_initial_format" 
  7.         android:layout_width="wrap_content" android:layout_height="wrap_content" 
  8.         android:layout_weight="0" android:paddingBottom="30dip" 
  9.         android:paddingTop="30dip" /> 
  10.     <Button android:id="@+id/start" android:layout_width="wrap_content" 
  11.         android:layout_height="wrap_content" android:text="@string/chronometer_start"> 
  12.         <requestFocus /> 
  13.     </Button> 
  14.     <Button android:id="@+id/stop" android:layout_width="wrap_content" 
  15.         android:layout_height="wrap_content" android:text="@string/chronometer_stop"> 
  16.     </Button> 
  17.     <Button android:id="@+id/reset" android:layout_width="wrap_content" 
  18.         android:layout_height="wrap_content" android:text="@string/chronometer_reset"> 
  19.     </Button> 
  20.     <Button android:id="@+id/set_format" android:layout_width="wrap_content" 
  21.         android:layout_height="wrap_content" android:text="@string/chronometer_set_format"> 
  22.     </Button> 
  23.     <Button android:id="@+id/clear_format" android:layout_width="wrap_content" 
  24.         android:layout_height="wrap_content" android:text="@string/chronometer_clear_format"> 
  25.     </Button> 
  26. </LinearLayout> 

string.xml
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> 
  3.     <string name="hello">Hello World, ChronometerDemo!</string> 
  4.     <string name="app_name">ChronometerDemo</string> 
  5.     <string name="chronometer_start">Start</string> 
  6.     <string name="chronometer_stop">Stop</string> 
  7.     <string name="chronometer_reset">Reset</string> 
  8.     <string name="chronometer_set_format">Set format string</string> 
  9.     <string name="chronometer_clear_format">Clear format string</string> 
  10.     <string name="chronometer_initial_format">Initial format: <xliff:g id="initial-format">%s</xliff:g></string> 
  11. </resources> 

 轉自:http://geolo.co.cc/?p=39

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved