Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> android之計時器(Chronometer)的使用以及常用的方法

android之計時器(Chronometer)的使用以及常用的方法

編輯:Android開發實例

在Android的SDK中,為我們提供了一個計時器,這個計時器稱為Chronometer,我們可以成它為Android的一個組件,同時它也具備自己獨有的方法。下面我們舉例介紹下這個計時器的使用以及常用的方法。

跟其他UI組件一樣,當我們要使用它的時候,在布局文件中對應的位置聲明定義計時器的位置與屬性。
代碼如下:

<Chronometer
android:id=”@+id/chronometer”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
/>

在程序中使用定義的計時器,並設置顯示時間格式。
代碼如下:

chronometer = (Chronometer) findViewById(R.id.chronometer);
chronometer.setFormat(“計時時間:(%s)”);

這樣程序運行後就會顯示以上設定的計時器內容,另外我們在程序中可以通過以下幾個常用的計時器方法控制計時器的計時工作。
代碼如下:

A、Chronometer.start();//計時開始
B、Chronometer.stop();//暫停計時
C、Chronometer.setBase(SystemClock.elapsedRealtime());//復位計時器,停止計時

Android就是通過這樣的一個控件,讓我們可以輕松地在程序中實現計時的工作,從而免去復雜的線程與多余的代碼編寫,節省了大量的開發時間。

Android之計時器(Chronometer)的用法
第一步:布局文件
main.xml代碼如下:
代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Chronometer
android:id="@+id/myChronometer"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/btn_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="開始" />
<Button
android:id="@+id/btn_stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="停止" />
<Button
android:id="@+id/btn_base"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="復位" />
<Button
android:id="@+id/btn_format"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="格式化" />
</LinearLayout>
</LinearLayout>

第二步:MainActivity
代碼如下:
代碼如下:

package net.loonggg.chronometer;
import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.os.Vibrator;
import android.view.View;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener;
public class MainActivity extends Activity {
private Vibrator vibrator;
private Chronometer chronometer; // 計時組件
private Button btn_start;
private Button btn_stop;
private Button btn_base;
private Button btn_format;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);// 獲取震動服務
chronometer = (Chronometer) findViewById(R.id.myChronometer);
chronometer
.setOnChronometerTickListener(new OnChronometerTickListenerImpl()); // 給計時組件設置艦艇對象
btn_start = (Button) findViewById(R.id.btn_start);
btn_stop = (Button) findViewById(R.id.btn_stop);
btn_base = (Button) findViewById(R.id.btn_base);
btn_format = (Button) findViewById(R.id.btn_format);
btn_start.setOnClickListener(new ButtonClickListener());
btn_stop.setOnClickListener(new ButtonClickListener());
btn_base.setOnClickListener(new ButtonClickListener());
btn_format.setOnClickListener(new ButtonClickListener());
}
public class OnChronometerTickListenerImpl implements // 計時監聽事件,隨時隨地的監聽時間的變化
OnChronometerTickListener {
@Override
public void onChronometerTick(Chronometer chronometer) {
String time = chronometer.getText().toString();
if ("00:05".equals(time)) {// 判斷五秒之後,讓手機震動
vibrator.vibrate(new long[] { 1000, 10, 100, 10 }, 0);// 設置震動周期和是否循環震動,如果不想循環震動把0改為-1
}
}
}
public class ButtonClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_start:
chronometer.start();// 開始計時
break;
case R.id.btn_stop:
chronometer.stop();// 停止計時
break;
case R.id.btn_base:
chronometer.setBase(SystemClock.elapsedRealtime());// 復位鍵
break;
case R.id.btn_format:
chronometer.setFormat("顯示時間:%s.");// 更改時間顯示格式
break;
default:
break;
}
}
}
}

第三步:注冊權限
代碼如下:

<uses-permission android:name="android.permission.VIBRATE" />

囧神的世界你不懂,蟲哥的生活你沒有,只有程序猿的世界大家才知道。程序猿們,為了自己的精彩世界奮斗吧,努力吧!加油……

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