第一步:布局檔案:
main.xml代碼如下:View Code
1 <?xml version="1.0" encoding="utf-8"?> 2 3 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 4 5 android:layout_width="fill_parent" 6 7 android:layout_height="fill_parent" 8 9 android:orientation="vertical" >10 11 12 13 14 <Chronometer15 16 android:id="@+id/myChronometer"17 18 android:layout_width="fill_parent"19 20 android:layout_height="wrap_content" />21 22 23 24 25 <LinearLayout26 27 android:layout_width="fill_parent"28 29 android:layout_height="wrap_content"30 31 android:orientation="horizontal" >32 33 34 35 36 <Button37 38 android:id="@+id/btn_start"39 40 android:layout_width="wrap_content"41 42 android:layout_height="wrap_content"43 44 android:text="開始" />45 46 47 48 49 <Button50 51 android:id="@+id/btn_stop"52 53 android:layout_width="wrap_content"54 55 android:layout_height="wrap_content"56 57 android:text="停止" />58 59 60 61 62 <Button63 64 android:id="@+id/btn_base"65 66 android:layout_width="wrap_content"67 68 android:layout_height="wrap_content"69 70 android:text="複位" />71 72 73 74 75 <Button76 77 android:id="@+id/btn_format"78 79 android:layout_width="wrap_content"80 81 android:layout_height="wrap_content"82 83 android:text="格式化" />84 85 </LinearLayout>86 87 88 89 90 </LinearLayout>
第二步:MainActivity代碼如下:View Code
1 package net.loonggg.chronometer; 2 3 4 5 6 import android.app.Activity; 7 8 import android.os.Bundle; 9 10 import android.os.SystemClock; 11 12 import android.os.Vibrator; 13 14 import android.view.View; 15 16 import android.widget.Button; 17 18 import android.widget.Chronometer; 19 20 import android.widget.Chronometer.OnChronometerTickListener; 21 22 23 24 25 public class MainActivity extends Activity { 26 27 private Vibrator vibrator; 28 29 private Chronometer chronometer; // 計時組件 30 31 private Button btn_start; 32 33 private Button btn_stop; 34 35 private Button btn_base; 36 37 private Button btn_format; 38 39 40 41 42 @Override 43 44 public void onCreate(Bundle savedInstanceState) { 45 46 super.onCreate(savedInstanceState); 47 48 setContentView(R.layout.main); 49 50 vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);// 擷取震動服務 51 52 chronometer = (Chronometer) findViewById(R.id.myChronometer); 53 54 chronometer 55 56 .setOnChronometerTickListener(new OnChronometerTickListenerImpl()); // 給計時組件設定艦艇對象 57 58 btn_start = (Button) findViewById(R.id.btn_start); 59 60 btn_stop = (Button) findViewById(R.id.btn_stop); 61 62 btn_base = (Button) findViewById(R.id.btn_base); 63 64 btn_format = (Button) findViewById(R.id.btn_format); 65 66 67 68 69 btn_start.setOnClickListener(new ButtonClickListener()); 70 71 btn_stop.setOnClickListener(new ButtonClickListener()); 72 73 btn_base.setOnClickListener(new ButtonClickListener()); 74 75 btn_format.setOnClickListener(new ButtonClickListener()); 76 77 } 78 79 80 81 82 public class OnChronometerTickListenerImpl implements // 計時監聽事件,隨時隨地的監聽時間的變化 83 84 OnChronometerTickListener { 85 86 87 88 89 @Override 90 91 public void onChronometerTick(Chronometer chronometer) { 92 93 String time = chronometer.getText().toString(); 94 95 if ("00:05".equals(time)) {// 判斷五秒之後,讓手機震動 96 97 vibrator.vibrate(new long[] { 1000, 10, 100, 10 }, 0);// 設定震動周期和是否迴圈震動,如果不想迴圈震動把0改為-1 98 99 }100 101 }102 103 }104 105 106 107 108 public class ButtonClickListener implements View.OnClickListener {109 110 111 112 113 @Override114 115 public void onClick(View v) {116 117 switch (v.getId()) {118 119 case R.id.btn_start:120 121 chronometer.start();// 開始計時122 123 break;124 125 case R.id.btn_stop:126 127 chronometer.stop();// 停止計時128 129 break;130 131 case R.id.btn_base:132 133 chronometer.setBase(SystemClock.elapsedRealtime());// 複位鍵134 135 break;136 137 case R.id.btn_format:138 139 chronometer.setFormat("顯示時間:%s.");// 更改時間顯示格式140 141 break;142 143 144 145 146 default:147 148 break;149 150 }151 152 }153 154 155 156 157 }158 159 }
第三步:註冊許可權: <uses-permission android:name="android.permission.VIBRATE" />