android之计时器(Chronometer)的使用以及常用的方法

在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" />

囧神的世界你不懂,虫哥的生活你没有,只有程序猿的世界大家才知道。程序猿们,为了自己的精彩世界奋斗吧,努力吧!加油……

时间: 2024-11-13 00:29:18

android之计时器(Chronometer)的使用以及常用的方法的相关文章

android之计时器(Chronometer)的使用以及常用的方法_Android

在Android的SDK中,为我们提供了一个计时器,这个计时器称为Chronometer,我们可以成它为Android的一个组件,同时它也具备自己独有的方法.下面我们举例介绍下这个计时器的使用以及常用的方法. 跟其他UI组件一样,当我们要使用它的时候,在布局文件中对应的位置声明定义计时器的位置与属性. 复制代码 代码如下: <Chronometer android:id="@+id/chronometer" android:layout_width="wrap_cont

Android计时器chronometer使用实例讲解_Android

在Android中,可以使用计时器来实现对时间的监测,这个类所实现的功能有开始计时,停止计时,重新计时,设置计 时模式,下面列出计时器方法的原型:long getBase();//返回基地的时间,由setBase(long)设置的String getFormat(); //返回当前字符串格式,此格式是通过setFormat()实现的void setBase(long base); //设置时间,计数定时器指定的值void setFormat(String format); //设置显示的内容,计

Android学习笔记(20):时钟(AnalogClock和TextClock)和计时器(Chronometer)

时钟文本TextClock继承自TextView,是用于显示当前时间的文本框. TextClock支持的XML属性和相关方法   XML属性 相关方法 说明 android:format12Hour setFormat12Hour(CharSequence) 设置12小时制的格式字符串 android:format24Hour setFormat12Hour(CharSequence) 设置24小时制的格式字符串 android:timeZone setTimeZone(String) 设置该时

Android控件Chronometer定时器的实现方法_Android

Chronometer是一个简单的定时器,你可以给它一个开始时间,并以此定时,或者如果你不给它一个开始时间,它将会使用你的时间通话开始.默认情况下它会显示在当前定时器的值的形式"分:秒"或"H:MM:SS的",或者可以使用的Set(字符串)格式的定时器值到一个任意字符串 1.重要属性 android:format:定义时间的格式如:hh:mm:ss 2.重要方法 setBase(long base):设置倒计时定时器 setFormat(String format)

Android控件Chronometer定时器的实现方法

Chronometer是一个简单的定时器,你可以给它一个开始时间,并以此定时,或者如果你不给它一个开始时间,它将会使用你的时间通话开始.默认情况下它会显示在当前定时器的值的形式"分:秒"或"H:MM:SS的",或者可以使用的Set(字符串)格式的定时器值到一个任意字符串 1.重要属性 android:format:定义时间的格式如:hh:mm:ss 2.重要方法 setBase(long base):设置倒计时定时器 setFormat(String format)

Android获取常用辅助方法(获取屏幕高度、宽度、密度、通知栏高度、截图)_Android

我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现.下面就分享一下Android中常用的一些辅助方法: 获取屏幕高度: /** * 获得屏幕高度 * @param context * @return * by Hankkin at:2015-10-07 21:15:59 */ public static int getScreenWidth(Context context) { WindowManager wm = (WindowManager) cont

Android超越Windows成互联网用户最常用操作系统

据外媒报道,互联网监测公司Statcounter的一项研究显示,谷歌(微博)Android已经超过微软Windows成为互联网用户最常用的操作系统. 对互联网和应用程序用户来说,移动设备已经与台式机同等重要,甚至更加重要. Statcounter研究发现,Android已经超过Windows成为互联网用户最常用的操作系统. 2017年3月,在StatCounter跟踪的网站中,Android用户的访问量占37.93%,Windows用户的访问量占37.91%.两者之间的差距不大,但这是一个转折点

Android Wear计时器开发_Android

记得在2013年12月的时候,有系列文章是介绍怎么开发一个智能手表的App,让用户可以在足球比赛中记录停表时间.随着Android Wear的问世,在可穿戴设备中开发一款这样的App确实是个很不错的想法,但是按照目前对于Android Wear的架构了解来说,似乎有些困难.所以本系列文章我们就重写这个应用,带领大家进入Android Wear的世界. 本文不会长篇大论地讲解我们要开发的这款App的用途,因为我们在之前的系列文章已经深入了解过了.这么说吧,这是一个计时类应用,在比赛开始的时候开始执

Android Wear计时器开发

记得在2013年12月的时候,有系列文章是介绍怎么开发一个智能手表的App,让用户可以在足球比赛中记录停表时间.随着Android Wear的问世,在可穿戴设备中开发一款这样的App确实是个很不错的想法,但是按照目前对于Android Wear的架构了解来说,似乎有些困难.所以本系列文章我们就重写这个应用,带领大家进入Android Wear的世界. 本文不会长篇大论地讲解我们要开发的这款App的用途,因为我们在之前的系列文章已经深入了解过了.这么说吧,这是一个计时类应用,在比赛开始的时候开始执