文档章节

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
深圳
私信 提问
Google Android O 发布倒数计时 以日全食为主题

Android O 正式版将在 8 月 21 日推出,Google 推出了一个以这次日食为主题的倒计时网站。 该网站还提供了一些方便的日食跟踪工具,包括一个可爱的动画,显示用户所在地日食的位置。Google ...

局长
2017/08/19
960
6
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丶
08/14
0
0
Android 倒计时工具CountDownTimer的使用

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

IamOkay
2014/11/23
0
0
多个安卓端的倒计时同步

多个安卓端如何做到倒计时的同步,比如实现实时的倒计时抢答。

JY西雅图图图图图
2016/08/09
158
0

没有更多内容

加载失败,请刷新页面

加载更多

Flask框架web开发:零基础入门

Flask框架是Python开发的一个基于Werkzeug和Jinja 2的web开发微框架,它的优势就是极其简洁,但又非常灵活,而且容易学习和应用。因此Flask框架是Python新手快速开始web开发最好的选择,此外...

笔阁
14分钟前
1
0
VMware前路难测,多个厂家群雄逐鹿

在人们高谈Salesforce、亚马逊等新兴云计算厂商取得的成就时,以VMware、HPE和Cisco为代表的老牌厂商也在进行着自己的转型和变化,而且还取得一定的进展。以VMware为例,虚拟机巨头公布了第二...

linuxCool
17分钟前
0
0
什么是以太坊DAO?(一)

Decentralized Autonomous Organization,简称DAO,以太坊中重要的概念。一般翻译为去中心化的自治组织。 “在区块链上,没有人知道你是一台冰箱”——理查德布朗 到目前为止,我们列出的所有...

geek12345
19分钟前
0
0
linux防火墙操作

一、.对于centos7自带的防火墙的相关指令 #停止firewall systemctl stop firewalld.service #禁止firewall开机启动 systemctl disable firewalld.service #查看firewall的状态 systemctl st......

张锦飞
21分钟前
1
0
Linux 磁盘与磁盘分区

  Linux 系统中所有的硬件设备都是通过文件的方式来表现和使用的,我们将这些文件称为设备文件,硬盘对应的设备文件一般被称为块设备文件。本文介绍磁盘设备在 Linux 系统中的表示方法以及...

SEOwhywhy
30分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部