Android计数器的实现(倒计时)

安卓实现计数器有四种方式,直接给代码

1、使用Thread+Handler

private int number = 0;

private Handler handler1 = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        tvNumber.setText(msg.what + "");
    }
};

private void counter1() {
    number = 4;new Thread() {
        public void run() {
            while (number >= 0) {
                Message msg = handler1.obtainMessage();
                msg.what = number;
                handler1.sendMessage(msg);
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                number--;// 数字
            }
        };
    }.start();
}

2、仅使用Handler

private void counter2() {
    Message msg = handler2.obtainMessage();
    msg.what = 4;
    handler2.sendMessageDelayed(msg, 1000);
}

Handler handler2 = new Handler() {
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        int num = msg.what;
        tvNumber.setText(num + "");
        if (num > 0) {
            num--;
            Message message = handler2.obtainMessage();
            message.what = num;
            handler2.sendMessageDelayed(message, 1000);
        }
    };
};

3、使用android.os.CountDownTimer类实现

private void counter3() {
    new CountDownTimer(5000, 1000) {
        public void onTick(long millisUntilFinished) {
            tvNumber.setText(millisUntilFinished / 1000 + "");
        }

        public void onFinish() {
            tvNumber.setText("0");
        }
    }.start();
}

4、使用Timer+handler

private int number = 0;

private TimerTask timerTask;

private Timer timer;

private void counter4() {
    number = 4;
    timerTask = new TimerTask() {

        @Override
        public void run() {
            if(number >= 0){
                Message msg = handler1.obtainMessage();
                msg.what = number;
                handler1.sendMessage(msg);
                number --;
            }
        }
    };

    timer = new Timer();
    timer.schedule(timerTask, 0, 1000);
}
时间: 2024-11-06 09:02:16

Android计数器的实现(倒计时)的相关文章

Android—实现自定义相机倒计时拍照

这篇博客为大家介绍Android自定义相机,并且实现倒计时拍照功能 首先自定义拍照会用到SurfaceView控件显示照片的预览区域,以下是布局文件: 两个TextView是用来显示提示信息和倒计时的秒数的 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" androi

Android基础之CountDownTimer 倒计时类

app常用的60s倒计时计时功能: private static final int TIME_LIMIT = 60; private void initView() { // 相关控件 mResend = (TextView) findViewById(R.id.resend); // 重新发送btn mResend.setOnClickListener(this); mTimeLimit = (TextView) findViewById(R.id.time_limit); // 倒计时秒数

Android实现多个倒计时优化与源码分析

因为之前有个项目需求是需要时时刻去更新UI倒计时,之前想到的,这简单嘛,用计时或者Handler就可以搞定,而且性能也不错,但是需求要ListView,什么,?大量的View都需要,那Handle处理不好会挂的啊,那轮训呢,?太消耗内存和Cpu,突然之前只有想到用Handle去处理,但是Item太多如何管理呢.?带着这样的问题,思考着纠结着,今天无意中看到一个源码还不错, 这个类是Google原生提供的数字时钟,可以实现时时刻刻的更新,我想里面肯定封装了一些实现的逻辑就跟着开始研究学习,下面是该

Android CountDownTimer 类实现倒计时

本文用 Android 中的 CountDownTimer 类实现倒计时功能,类似输入手机号获得验证码.界面如下所示: 1. 点击 “开始计时” 按钮后开始进行倒计时, 2. 倒计时过程: 3. 时间结束后按钮变为 “重新验证”,点击后重新开始计时. 功能很简单,Java 代码如下: public class MainActivity extends Activity { private TimeCount time; private Button checking; @Override pro

Android自定义View之倒计时Countdown实现

先看一下效果: 在点击OK键之后,开始倒计时. 实现步骤 1.新建Android工程"CountdownView" 2.自定义Drawable 自定义View并没有直接的用户交互,简化起见,可以自定义实现一个drawable,作为ImageView的背景 观察一下View的构成,分为几个部分: 1. 外围圆环边界 2. 进度条 3. 内部圆形背景 4. 倒计时数字 另外,要画出这几个部分,画笔Paint肯定少不了 好了,自定义一个“CountdownDrawable”继承Drawabl

Android使用Timer编写倒计时程序

开篇大家可以先看看Timer的基础用法,以及简单的原理.http://my.oschina.net/zhengweishan/blog/493891 Java之Timer使用.这里我要说的是Android使用Timer编写一个倒计时程序. 需求:实现简单的倒计时程序.要求可以根据用户的输入实现倒计时,时间到的时候有友好的提示. 分析:首先要实现这个功能,我想到的第一个方法就是使用Timer这个类.然后就是分析用户界面怎么设计,由于这个是简单程序,所以就采用Android原生的一些UI组件Butt

Android发送验证码的倒计时按钮

1 直接上图 2 原理 原理很简单,就是把相应的倒计时逻辑等封装到一个控件中,并向外部提供接口. 3 代码 import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.Layo

Android实现计时与倒计时(限时抢购)的几种方法

在购物网站的促销活动中一般都有倒计时限制购物时间或者折扣的时间,这些都是如何实现的呢? 在一个安卓客户端项目中恰好遇到了类似的问题,一开始使用的是Timer与 TimerTask, 虽然此方法通用,但后来考虑在安卓中是否有更佳的方案,于是乎共找到以下五种实现方案,另外还有一种使用CountDownTimer进行计时的方面,我 会在单独的文章中进行介绍 效果如图: 方法一 Timer与TimerTask(Java实现) [java] view plaincopy public class time

[转]Android实现计时与倒计时(限时抢购)的几种方法

在购物网站的促销活动中一般都有倒计时限制购物时间或者折扣的时间,这些都是如何实现的呢? 在一个安卓客户端项目中恰好遇到了类似的问题,一开始使用的是Timer与 TimerTask, 虽然此方法通用,但后来考虑在安卓中是否有更佳的方案,于是乎共找到以下五种实现方案,另外还有一种使用CountDownTimer进行计时的方面,我会在单独的文章中进行介绍 效果如图: 方法一 Timer与TimerTask(Java实现) [java] view plaincopy public class timer