Android利用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(); } }

效果图:

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

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

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

时间: 2024-09-20 07:40:43

Android利用Chronometer实现倒计时功能的相关文章

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

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

Android利用CountDownTimer实现倒计时功能 Android实现停留5s跳转到登录页面

利用CountDownTimer实现倒计时,停留5s跳转到登录页面功能,具体如下 举个栗子,引导页面最后一个界面要停留5s跳转到登录页面.代码如下: //假设 这是引导页面最后一个界面 public class MainActivity extends Activity { private TextView count_time; private MyCountDownTimer myCountDownTimer; @Override protected void onCreate(Bundle

Android基于CountDownTimer实现倒计时功能_Android

本文实例讲述了Android编程基于CountDownTimer实现倒计时功能的方法.分享给大家供大家参考,具体如下: 在逛论坛的时候,看到一个网友提问,说到了CountDownTimer这个类,从名字上面大家就可以看出来,记录下载时间.将后台线程的创建和Handler队列封装成一个方便的类调用. 查看了一下官方文档,这个类及其简单,只有四个方法,上面都涉及到了onTick,onFinsh.cancel和start.其中前面两个是抽象方法,所以要重写一下. 下面是官方给的一个小例子: new C

Android中CountDownTimer 实现倒计时功能

CountDownTimer CountDownTimer 是android 自带的一个倒计时类,使用这个类可以很简单的实现 倒计时功能 CountDownTimer 的实现方式 new CountDownTimer(6000,1000) {//第一个参数表示的是倒计时的总时间,第二参数表示的是倒计时的间隔时间. @Override public void onTick(long millisUntilFinished) {//倒计时的过程 textView.setText(millisUnti

Android利用Intent实现记事本功能(NotePad)_Android

本文实例为大家分享了Intent如何实现一个简单的记事本功能的演示过程,供大家参考,具体内容如下 1.运行截图 单击右上角[-]会弹出[添加]菜单项,长按某条记录会弹出快捷菜单[删除]项. 2.主要设计步骤 (1)添加引用 鼠标右击[引用]à[添加引用],在弹出的窗口中勾选"System.Data"和"System.Data.SQlite",如下图所示: 注意:不需要通过NuGet添加SQLite程序包,只需要按这种方式添加即可. (2)添加图片 到Android

Android利用Intent实现记事本功能(NotePad)

本文实例为大家分享了Intent如何实现一个简单的记事本功能的演示过程,供大家参考,具体内容如下 1.运行截图 单击右上角[-]会弹出[添加]菜单项,长按某条记录会弹出快捷菜单[删除]项. 2.主要设计步骤 (1)添加引用 鼠标右击[引用]à[添加引用],在弹出的窗口中勾选"System.Data"和"System.Data.SQlite",如下图所示: 注意:不需要通过NuGet添加SQLite程序包,只需要按这种方式添加即可. (2)添加图片 到Android

Android利用GridView实现单选功能

先看看GridView实现单选效果 如果是你需要的,你可以继续往下看了 实现起来比较简单,直接上代码 主Activity的布局,一个Button用来跳转到筛选Activity一个TextView用来显示筛选后的到的结果 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/androi

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

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

android实现倒计时功能的方法_Android

前言   在打开爱奇艺等app的欢迎界面的时候,右上角有一个倒计时的控件.倒计时完了以后进入主界面.现在我们来实现这个功能.  方法一: 利用java的类Timer,TimerTask还有android的Handler 界面welcome_activity.xml  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.an