首页 > 系统 > Android > 正文

简述Android利用Chronometer实现倒计时功能

2020-02-21 17:30:12
字体:
来源:转载
供稿:网友

项目需要实现计时器的函数操作方法,虽然计时器可以很容易地实现计时器功能,但它需要控制倒计时,今天武林技术频道小编为大家带来简述Android利用Chronometer实现倒计时功能,希望对你有帮助。

百度了一下方法不少,倒计时的却没有,于是用Chronometer封装了一个倒计时的类,本着开源的精神,分享给大家!

废话不说了,进入主题

首先xml布局如下:

<com.example.anticlockwisedemo.Anticlockwise  android:id="@+id/id_timer"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:textSize="66sp" /> 

继承Chronometer封装好的类:

package com.example.anticlockwisedemo;  import java.text.SimpleDateFormat; import java.util.Date; import android.annotation.SuppressLint; import android.content.Context; import android.util.AttributeSet; import android.widget.Chronometer;   /***  *  * @author 张小_懒 2015/02/07  *  */ @SuppressLint( { "ViewConstructor", "SimpleDateFormat" }) public class Anticlockwise extends Chronometer {  public Anticlockwise(Context context, AttributeSet attrs)  {  super(context, attrs);  // TODO 自动生成的构造函数存根  mTimeFormat = new SimpleDateFormat("mm:ss");  this.setOnChronometerTickListener(listener);  }   private long mTime;  private long mNextTime;  private OnTimeCompleteListener mListener;  private SimpleDateFormat mTimeFormat;   public Anticlockwise(Context context)  {  super(context);   }   /**  * 重新启动计时  */  public void reStart(long _time_s)  {  if (_time_s == -1)  {  mNextTime = mTime;  } else  {  mTime = mNextTime = _time_s;  }  this.start();  }   public void reStart()  {  reStart(-1);  }   /**  * 继续计时  */  public void onResume()  {  this.start();  }   /**  * 暂停计时  */  public void onPause()  {  this.stop();  }   /**  * 设置时间格式  *  * @param pattern  * 计时格式  */  public void setTimeFormat(String pattern)  {  mTimeFormat = new SimpleDateFormat(pattern);  }   public void setOnTimeCompleteListener(OnTimeCompleteListener l)  {  mListener = l;  }   OnChronometerTickListener listener = new OnChronometerTickListener()  {  @Override  public void onChronometerTick(Chronometer chronometer)  {  if (mNextTime <= 0)  {  if (mNextTime == 0)  {  Anticlockwise.this.stop();  if (null != mListener)  mListener.onTimeComplete();  }  mNextTime = 0;  updateTimeText();  return;  }   mNextTime--;   updateTimeText();  }  };   /**  * 初始化时间  * @param _time_s  */  public void initTime(long _time_s)  {  mTime = mNextTime = _time_s;  updateTimeText();  }   private void updateTimeText()  {  this.setText(mTimeFormat.format(new Date(mNextTime * 1000)));  }   interface OnTimeCompleteListener  {  void onTimeComplete();  }  } 

效果图:

程序很简单,我就不做过多的解释。

  以上就是武林技术频道小编为大家带来的简述Android利用Chronometer实现倒计时功能,有了以上教程,小编相信android软件开发对你不是一件难事,希望小编的教程对你有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表