手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android利用Chronometer实现倒计时功能
Android利用Chronometer实现倒计时功能
摘要:项目需要实现一个计时的功能,利用Chronometer虽然可以很方便的实现计时功能,但需要的却是一个倒计时控件。百度了一下方法不少,倒计时的...

项目需要实现一个计时的功能,利用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实现倒计时功能1

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

详细的大家可以看Demo,已封装,可直接使用,下载地址:http://xiazai.jb51.net/201611/yuanma/androidChronometer(jb51.net).rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持查字典教程网。

【Android利用Chronometer实现倒计时功能】相关文章:

Android应用程序的调试

Android 使用Intent传递数据的实现思路与代码

Android 使用Gallery实现3D相册(附效果图+Demo源码)

Android列表实现(1)_数组列表实例介绍

一种Android 类似电影倒计时效果

Android中实现动态切换组件背景的操作

基于Android中实现定时器的3种解决方法

Android中在控件上显示倒计时

Android Intent启动别的应用实现方法

Android实现屏幕旋转方法总结

精品推荐
分类导航