文档章节

Android 倒计时

androidtxf
 androidtxf
发布于 2016/05/23 15:26
字数 388
阅读 11
收藏 0

法一:

方法一 : public class Counter extends CountDownTimer {
  private static final int SECONDS = 60; // 秒数
  private static final int MINUTES = 60 * 60; // 小时

  private long first = 0, twice = 0, third = 0;
  private long mtmp = 0, mtmp2 = 0;

  public Counter(long millisInFuture, long countDownInterval) {
   super(millisInFuture, countDownInterval);
   // TODO Auto-generated constructor stub
  }

  @Override
  public void onFinish() {
   // TODO Auto-generated method stub

  }

  @Override
  public void onTick(long millisUntilFinished) {
   // TODO Auto-generated method stub
   // 获取当前时间总秒数
   first = millisUntilFinished / 1000;
   if (first < SECONDS) { // 小于一分钟 只显示秒
    tvSetTime
      .setText("00:00:" + (first < 10 ? "0" + first : first));
   } else if (first < MINUTES) { // 大于或等于一分钟,但小于一小时,显示分钟
    twice = first % 60; // 将秒转为分钟取余,余数为秒
    mtmp = first / 60; // 将秒数转为分钟
    if (twice == 0) {
     tvSetTime.setText("00:" + (mtmp < 10 ? "0" + mtmp : mtmp)
       + ":00"); // 只显示分钟
    } else {
     tvSetTime.setText("00:" + (mtmp < 10 ? "0" + mtmp : mtmp)
       + ":" + (twice < 10 ? "0" + twice : twice)); // 显示分钟和秒
    }
   } else {
    twice = first % 3600; // twice为余数 如果为0则小时为整数
    mtmp = first / 3600;
    if (twice == 0) {
     // 只剩下小时
     tvSetTime.setText("0" + first / 3600 + ":00:00");
    } else {
     if (twice < SECONDS) { // twice小于60 为秒
      tvSetTime.setText((mtmp < 10 ? "0" + mtmp : mtmp)
        + ":00:" + (twice < 10 ? "0" + twice : twice)); // 显示小时和秒
     } else {
      third = twice % 60; // third为0则剩下分钟 否则还有秒
      mtmp2 = twice / 60;
      if (third == 0) {
       tvSetTime.setText((mtmp < 10 ? "0" + mtmp : mtmp)
         + ":" + (mtmp2 < 10 ? "0" + mtmp2 : mtmp2)
         + ":00");
      } else {
       tvSetTime.setText((mtmp < 10 ? "0" + mtmp : mtmp)
         + ":" + (mtmp2 < 10 ? "0" + mtmp2 : mtmp2)
         + ":" + third); // 还有秒
      }
     }
    }
   }
  }

 }

法二:

public void StartTime(int i) {
   time_num = i;
   if (istime != null) {
    istime.cancel();
    istime = null;
   }
   istime = new Timer();
   text_time.setText(time_num / 60 + ":" + time_num % 60);
   istime.schedule(new TimerTask() {
    @Override
    public void run() {
     // TODO 自动生成的方法存根
     if (time_num > 0)
      time_num--;
     else {
      istime.cancel();
      istime = null;
     }
     han_time.sendMessage(new Message());
    }
   }, 1000, 1000);
  }

  public void StopTime() {
   if (istime != null) {
    istime.cancel();
    istime = null;
   }
  }

  Handler han_time = new Handler() {
   public void handleMessage(Message msg) {
    text_time.setText(String.format("%02d", time_num / 60) + ":"
      + String.format("%02d", time_num % 60));
   };
  };

© 著作权归作者所有

共有 人打赏支持
androidtxf
粉丝 0
博文 3
码字总数 448
作品 0
深圳
Android Timer计时器详解

直接上代码,解释看注释,一个火箭发射倒计时的例子 main.xml [html] <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ......

yumingxinli
2013/03/08
0
1
Chronometer和CountDownTimer计时器

Android小知识10则(上) Android小知识10则(下) Android用5种方式实现自定义计时器, 哪种才是你的菜? github传送门 目录 前言 Chronometer的使用 CountDownTimer的使用 最后 前言 mTimer.set...

Sorrower丶
昨天
0
0
Android 倒计时工具CountDownTimer的使用

一、用法详解 在Android开发中,有时需要使用倒计时功能,在Android系统中提供了一个倒计时的抽象类来辅助倒计时行为。 这个类有点缺陷,就是不能暂停后再次接着继续使用,为此,需要自定义一...

IamOkay
2014/11/23
0
0
android倒计时功能的实现(CountDownTimer)

android倒计时功能的实现(CountDownTimer) 分类: android小例子2011-11-06 23:182550人阅读评论(4)收藏举报 在逛论坛的时候,看到一个网友提问,说到了CountDownTimer这个类,从名字上面大...

冯京宝
2012/06/14
0
0
android中service,activity随手机开机而自动启动

首先必须明白android程序之间的通信是广播broadcastReceiver,程序之间的数据共享是用内容提供者Contentproved,所以要在手机启动时,启动服务,就是要知道什么时候手机开机,这时可以注册一...

陈杰
2012/03/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

C++ gflags

###定义参数 gflags主要支持的参数类型包括bool,int32, int64, uint64, double, string等,定义参数通过DEFINE_type宏实现, 该宏的三个参数含义分别为命令行参数名,参数默认值,以及参数的...

SibylY
17分钟前
0
0
intellij IDEA Properties中文unicode转码问题

在IDEA中创建了properties文件,发现默认中文不会自动进行unicode转码。如下 在project settings - File Encoding,在标红的选项上打上勾,确定即可 效果图如下: unicode转码后效果...

muzi1994
18分钟前
0
0
Java IO类库之PipedWriter

一、PipedWriter介绍 PipedWriter是字符管道输出流,继承自Writer,功能与PipedOutputStream类似,通过与PipedReader组合使用实现类似管道的功能,在多线程环境下,一个线程使用PipedWriter...

老韭菜
22分钟前
0
0
精简分页组件(手写)

需要引入CSS(没错就是这4行) .pagelist { text-align: center; color: #666; width: 100%; clear: both; margin: 20px 0; padding-top: 20px }.pagelist a { color: #666; margin: 0 2px;......

AK灬
22分钟前
3
0
29 岁成为阿里巴巴 P8,工作前 5 年完成晋升 3 连跳,他如何做到?

泡泡是我的好朋友。今年 31 岁,毕业后就进了阿里巴巴,工作五年内从 P4 晋升至 P6、P7、P8。 和他很少聊到工作,但总觉得他有很棒的职场心得,应该分享出来,于是有了这次采访。希望对职场新...

Java填坑之路
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部