Android实战教程第四十篇之Chronometer实现倒计时

Android提供了实现按照秒计时的API,今天就是用这个API实现简单的倒计时。

来个布局:

<?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="wrap_content"
 android:layout_height="wrap_content" /> 

 <LinearLayout
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:orientation="horizontal" > 

 <Button
  android:id="@+id/btnStart"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="开始计时" /> 

 <Button
  android:id="@+id/btnStop"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="停止" /> 

 <Button
  android:id="@+id/btnBase"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="复位" /> 

 <Button
  android:id="@+id/btnFormat"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="格式化" />
 </LinearLayout> 

</LinearLayout>

对应活动中的代码如下:

package com.example.timer; 

import android.app.Activity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer; 

public class MainActivity extends Activity {
 private Chronometer myChronometer = null;
 private Button btnStart = null;
 private Button btnStop = null;
 private Button btnBase = null;
 private Button btnFormat = null; 

 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState); // 生命周期方法
 super.setContentView(R.layout.activity_main); // 设置要使用的布局管理器
 this.myChronometer = (Chronometer) super
  .findViewById(R.id.myChronometer);
 btnStart = (Button) super.findViewById(R.id.btnStart);
 btnStop = (Button) super.findViewById(R.id.btnStop);
 btnBase = (Button) super.findViewById(R.id.btnBase);
 btnFormat = (Button) super.findViewById(R.id.btnFormat);
 btnStart.setOnClickListener(new OnClickListenerStart());
 btnStop.setOnClickListener(new OnClickListenerStop());
 btnBase.setOnClickListener(new OnClickListenerBase());
 btnFormat.setOnClickListener(new OnClickListenerFormat());
 } 

 private class OnClickListenerStart implements OnClickListener { 

 public void onClick(View arg0) {
  myChronometer.start(); 

 } 

 } 

 private class OnClickListenerStop implements OnClickListener { 

 public void onClick(View arg0) {
  myChronometer.stop(); 

 } 

 } 

 private class OnClickListenerBase implements OnClickListener { 

 public void onClick(View arg0) {
  myChronometer.setBase(SystemClock.elapsedRealtime()); 

 } 

 } 

 private class OnClickListenerFormat implements OnClickListener { 

 public void onClick(View arg0) {
  myChronometer.setFormat("新的显示格式:%s。"); 

 } 

 } 

}

运行跑起来看看效果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android利用Chronometer实现倒计时功能

    项目需要实现一个计时的功能,利用Chronometer虽然可以很方便的实现计时功能,但需要的却是一个倒计时控件. 百度了一下方法不少,倒计时的却没有,于是用Chronometer封装了一个倒计时的类,本着开源的精神,分享给大家! 废话不说了,进入主题 首先xml布局如下: <com.example.anticlockwisedemo.Anticlockwise android:id="@+id/id_timer" android:layout_width="wrap_c

  • Android Chronometer控件实现计时器函数详解

    本文为大家演示了如何使用Chronometer控件实现Android计时器的实例. 先贴上最终的实现效果图: Android计时器实现思路 使用Chronometer控件实现计器的操作.通过设置setBase(long base)来设置初始时间,然后为其添加一个 setOnChronometerTickListener(Chronometer.OnChronometerTickListener l)事件来判断时间是否到了,然后再调用其stop()方法实现停止计时. Android计时器实现代码

  • Android自定义Chronometer实现短信验证码秒表倒计时功能

    本文实例为大家分享了Chronometer实现倒计时功能,Android提供了实现按照秒计时的API,供大家参考,具体内容如下 一.自定义ChronometerView 继续自TextView 主要原理:先设置一个基准倒计时时间mBaseSeconds,内置handler 每隔1s发送一个空消息,mRemainSeconds--,同时刷新界面视图,回调给外部调用者,只到为零.外部调用者可通过start()/pause()/stop()来控制计时器的工作状态. 可以app中发送短信验证码的场景为例

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

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

  • Android自带倒计时控件Chronometer使用方法详解

    公司的以前的项目,看到使用了这个Android自带的倒计时控件Chronometer,现在整合了一下 先看看效果: <Chronometer android:id="@+id/chronometer" android:layout_width="wrap_content" android:layout_height="30dp" /> <Button android:onClick="start" andro

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

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

  • Android计时器的三种实现方式(Chronometer、Timer、handler)

    本文实例为大家分享了Android计时器的三种方法,具体内容如下 目录: 1.借助Timer实现 2.调用handler.sendMessagedely(Message msg, long delayMillis) 3.借助布局Chronometer 1.借助Timer实现 (1) 布局文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:/

  • 学习使用Android Chronometer计时器

    本文实例为大家分享了Android Chronometer计时器基本使用方法,供大家参考,具体内容如下 在默认情况下,Chronometer组件只输出MM:SS或H:MM:SS的时间格式.例如,当计时到1分20秒时,Chronometer组件会显示01:20.如果想改变显示的信息内容,可以使用Chronometer类的setFormat方法.该方法需要一个String变量,并使用"%s"表示计时信息.例如,使用setFormat("计时信息:%s")设置显示信息,C

  • Android时分秒计时器的两种实现方法

    可能我们在开发中会时常用到计时器这玩意儿,比如在录像的时候,我们可能需要在右上角显示一个计时器.这个东西其实实现起来非常简单. 只需要用一个控件Chronometer,是的,就这么简单,我都不好意思讲述一下了. <Chronometer android:layout_width="wrap_content" android:layout_height="wrap_content" android:format="%s" android:id

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

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

  • Android编程之计时器Chronometer简单示例

    本文实例讲述了Android计时器Chronometer.分享给大家供大家参考,具体如下: Android中Chronometer控件继承自TextView,这个组件可以用1秒的时间间隔进行计时,并显示出计时结果.就是我们常说的计时器工具. public class ChronometerActivity extends Activity implements OnClickListener { private Chronometer mChronometer; private Button s

随机推荐