android之計(jì)時(shí)器(Chronometer)的使用以及常用的方法
在Android的SDK中,為我們提供了一個(gè)計(jì)時(shí)器,這個(gè)計(jì)時(shí)器稱為Chronometer,我們可以成它為Android的一個(gè)組件,同時(shí)它也具備自己獨(dú)有的方法。下面我們舉例介紹下這個(gè)計(jì)時(shí)器的使用以及常用的方法。
跟其他UI組件一樣,當(dāng)我們要使用它的時(shí)候,在布局文件中對(duì)應(yīng)的位置聲明定義計(jì)時(shí)器的位置與屬性。
<Chronometer
android:id=”@+id/chronometer”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
/>
在程序中使用定義的計(jì)時(shí)器,并設(shè)置顯示時(shí)間格式。
chronometer = (Chronometer) findViewById(R.id.chronometer);
chronometer.setFormat(“計(jì)時(shí)時(shí)間:(%s)”);
這樣程序運(yùn)行后就會(huì)顯示以上設(shè)定的計(jì)時(shí)器內(nèi)容,另外我們?cè)诔绦蛑锌梢酝ㄟ^以下幾個(gè)常用的計(jì)時(shí)器方法控制計(jì)時(shí)器的計(jì)時(shí)工作。
A、Chronometer.start();//計(jì)時(shí)開始
B、Chronometer.stop();//暫停計(jì)時(shí)
C、Chronometer.setBase(SystemClock.elapsedRealtime());//復(fù)位計(jì)時(shí)器,停止計(jì)時(shí)
Android就是通過這樣的一個(gè)控件,讓我們可以輕松地在程序中實(shí)現(xiàn)計(jì)時(shí)的工作,從而免去復(fù)雜的線程與多余的代碼編寫,節(jié)省了大量的開發(fā)時(shí)間。
Android之計(jì)時(shí)器(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="復(fù)位" />
<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; // 計(jì)時(shí)組件
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);// 獲取震動(dòng)服務(wù)
chronometer = (Chronometer) findViewById(R.id.myChronometer);
chronometer
.setOnChronometerTickListener(new OnChronometerTickListenerImpl()); // 給計(jì)時(shí)組件設(shè)置艦艇對(duì)象
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 // 計(jì)時(shí)監(jiān)聽事件,隨時(shí)隨地的監(jiān)聽時(shí)間的變化
OnChronometerTickListener {
@Override
public void onChronometerTick(Chronometer chronometer) {
String time = chronometer.getText().toString();
if ("00:05".equals(time)) {// 判斷五秒之后,讓手機(jī)震動(dòng)
vibrator.vibrate(new long[] { 1000, 10, 100, 10 }, 0);// 設(shè)置震動(dòng)周期和是否循環(huán)震動(dòng),如果不想循環(huán)震動(dòng)把0改為-1
}
}
}
public class ButtonClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_start:
chronometer.start();// 開始計(jì)時(shí)
break;
case R.id.btn_stop:
chronometer.stop();// 停止計(jì)時(shí)
break;
case R.id.btn_base:
chronometer.setBase(SystemClock.elapsedRealtime());// 復(fù)位鍵
break;
case R.id.btn_format:
chronometer.setFormat("顯示時(shí)間:%s.");// 更改時(shí)間顯示格式
break;
default:
break;
}
}
}
}
第三步:注冊(cè)權(quán)限:
<uses-permission android:name="android.permission.VIBRATE" />
囧神的世界你不懂,蟲哥的生活你沒有,只有程序猿的世界大家才知道。程序猿們,為了自己的精彩世界奮斗吧,努力吧!加油……
- Android時(shí)分秒計(jì)時(shí)器的兩種實(shí)現(xiàn)方法
- android計(jì)時(shí)器,時(shí)間計(jì)算器的實(shí)現(xiàn)方法
- android開發(fā)教程之間隔執(zhí)行程序(android計(jì)時(shí)器)
- Android實(shí)現(xiàn)的秒表計(jì)時(shí)器示例
- Android計(jì)時(shí)器的三種實(shí)現(xiàn)方式(Chronometer、Timer、handler)
- Android 編程下的計(jì)時(shí)器代碼
- Android編程之簡(jiǎn)單計(jì)時(shí)器實(shí)現(xiàn)方法
- Android開發(fā)實(shí)現(xiàn)的計(jì)時(shí)器功能示例
- Android中CountDownTimer倒計(jì)時(shí)器用法實(shí)例
- Android實(shí)現(xiàn)計(jì)時(shí)器功能
相關(guān)文章
詳解Android StrictMode嚴(yán)格模式的使用方法
這篇文章主要介紹了Android StrictMode嚴(yán)格模式的使用方法,需要的朋友可以參考下2018-01-01Android實(shí)現(xiàn)返回拍攝的圖片功能實(shí)例
這篇文章主要介紹了Android實(shí)現(xiàn)返回拍攝的圖片功能,以實(shí)例形式較為詳細(xì)的分析了Android返回拍攝圖片功能的具體步驟與實(shí)現(xiàn)方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Android自定義圓環(huán)倒計(jì)時(shí)控件
這篇文章主要為大家詳細(xì)介紹了Android自定義圓環(huán)倒計(jì)時(shí)控件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09Android將應(yīng)用調(diào)試log信息保存在SD卡的方法
Android將應(yīng)用調(diào)試log信息保存在SD卡的方法大家都知道嗎,下面腳本之家小編給大家分享Android將應(yīng)用調(diào)試log信息保存在SD卡的方法,感興趣的朋友參考下2016-04-04Android系統(tǒng)中的藍(lán)牙連接程序編寫實(shí)例教程
這篇文章主要介紹了Android系統(tǒng)中的藍(lán)牙連接程序編寫實(shí)例教程,包括藍(lán)牙的設(shè)備查找及自動(dòng)配對(duì)等各種基礎(chǔ)功能的實(shí)現(xiàn),十分給力,需要的朋友可以參考下2016-04-04Android根據(jù)包名停止其他應(yīng)用程序的方法
這篇文章主要介紹了Android根據(jù)包名停止其他應(yīng)用程序,需要的朋友可以參考下2020-03-03Flutter底部導(dǎo)航欄的實(shí)現(xiàn)方式
這篇文章主要為大家詳細(xì)介紹了Flutter底部導(dǎo)航欄的實(shí)現(xiàn)方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02