android实现倒计时功能(开始、暂停、0秒结束)

本文实例为大家分享了android实现倒计时功能的具体代码,供大家参考,具体内容如下

【思路】:通过 timer 执行周期延时的任务,handler 中将计时信息更新,并在计时结束时结束 timer 的周期任务。

- 在布局文件中添加一个TextView和Button控件,并在onCreate方法中获得到TextView和Button的id;

xml布局代码:

<Button
   android:id="@+id/button_start_timer"
   android:layout_width="0dp"
   android:layout_height="wrap_content"
   android:layout_weight="1"
   android:layout_gravity="center_vertical"
   android:gravity="center"
   android:text="开始"
   android:textSize="12sp"
   />

<TextView
   android:id="@+id/textViewTime24"
   android:layout_width="0dp"
   android:layout_height="wrap_content"
   android:layout_gravity="center_vertical"
   android:layout_weight="2"
   android:gravity="center"
   android:text="24"
   android:textColor="#33ff00"
   android:textSize="60sp" />

java代码

package com.example.wlf.gamerecorder.gameon;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.os.Handler;
import com.example.wlf.gamerecorder.R;

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class SimpleGameonActivity extends AppCompatActivity {

 private final static int COUNT = 1;
 private final static int TOTAL_TIME_24 = 24;
 private TextView textViewTime24;
 Timer timer;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_simple_gameon);
  textViewTime24=(TextView)findViewById(R.id.textViewTime24);//24秒倒计时
  final Button button_start_timer = (Button)findViewById(R.id.button_start_timer);
  button_start_timer.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    String str = button_start_timer.getText().toString();//获取按钮字符串
    if(str.equals("开始")){ //切换按钮文字
     button_start_timer.setText("暂停");
     initView();
    }
    else{
     button_start_timer.setText("开始");
     timer.cancel();//终止线程
    }
   }
  });
 }
 public void initView(){
  //countDown = (TextView) findViewById(R.id.textViewTime24);
  timer = new Timer();
  /**
   * 每一秒发送一次消息给handler更新UI
   * schedule(TimerTask task, long delay, long period)
   */
  timer.schedule(new TimerTask() {
   @Override
   public void run() {
    handler.sendEmptyMessage(COUNT);
   }
  }, 0, 1000);
 }
 private Handler handler = new Handler(){
  int num = TOTAL_TIME_24;
  public void handleMessage(android.os.Message msg) {
   switch (msg.what) {
    case COUNT:
     textViewTime24.setText(String.valueOf(num));
     if(num == 0)
      timer.cancel();//0秒结束
     num--;
     break;
    default:
     break;
   }
  };
 };
}

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

(0)

相关推荐

  • Android 实现闪屏页和右上角的倒计时跳转实例代码

    以前编程的时候,遇到倒计时的功能时,经常自己去写,但其实Android已经帮封装好了一个倒计时类CountDownTimer,其实是将后台线程的创建和Handler队列封装成为了一个方便的类调用. 闪屏页用到了handler和CountDownTimer类,还需配置一下Activity的主题,这里是:android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 全屏主题的意思. 给大家展示下效果图: 代码如下所示: package

  • android自定义圆形倒计时显示控件

    本文实例为大家分享了android自定义圆形倒计时显示控件的具体代码,供大家参考,具体内容如下 先上效果图 - 倒计时结束 代码块 attr.xml 控件需要用到的属性: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="CountDownView"> <!--颜色--> <attr name

  • android实现倒计时功能代码

    效果图,每隔1秒,变换一下时间  xml: 复制代码 代码如下: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="mat

  • Android实现加载广告图片和倒计时的开屏布局

    这是一个android开屏布局的实例,可以用于加载广告图片和倒计时的布局.程序中设置的LayoutParams,划分额外空间比例为6分之5,具体权重比例可根据用户自己需求来自定义,异步加载广告图片,相关的Android代码. 具体实现代码如下: package cn.waps.extend; import android.app.Activity; import android.content.Context; import android.content.res.Configuration;

  • android自定义倒计时控件示例

    自定义TextView控件TimeTextView代码: 复制代码 代码如下: import android.content.Context;import android.content.res.TypedArray;import android.graphics.Paint;import android.text.Html;import android.util.AttributeSet;import android.widget.TextView; import com.new0315.R;

  • Android倒计时的开始与停止 剩余时分秒的展示

    本文实例为大家分享了Android倒计时的开始与停止,剩余时分秒的展示效果,供大家参考,具体内容如下 1.声明开启倒计时相关方法 Handler handler = new Handler(); Runnable update_thread = new Runnable() { @Override public void run() { leftTime--; LogUtil.e("leftTime="+leftTime); if (leftTime > 0) { //倒计时效果

  • Android仿Keep运动休息倒计时圆形控件

    仿Keep运动休息倒计时控件,供大家参考,具体内容如下 源码 控件本身非常非常简单,唯一难点在于倒计时期间动态增减时长,如果说动态增减时长是瞬间完成的,倒也没什么难度,但是如果是需要花一定时间做动画的话(见效果图),考虑的逻辑就变多了,这也是我写这个的目的,对应源码中就是plus这个方法.地址: KeepCountdownView 效果 使用方法 xml: <com.KeepCountdownView.KeepCountdownView android:id="@+id/keep1&quo

  • Android自定义圆环倒计时控件

    本文实例为大家分享了Android自定义圆环倒计时控件的具体代码,供大家参考,具体内容如下 先来一张最终效果图: 主要思路: 在画渐变色圆环的时候,设置一个属性动画,根据属性动画的执行时长,来作为倒计时的时长.监听属性动画的进度,来达到 倒计时的目的. 二话不说,直接贴代码.具体实现思路都在注释上. 自定义属性: <declare-styleable name="CountDownProgressBar"> <attr name="countDown_cir

  • Android实现计时与倒计时的常用方法小结

    本文实例总结了Android实现计时与倒计时的常用方法.分享给大家供大家参考,具体如下: 方法一 Timer与TimerTask(Java实现) public class timerTask extends Activity{ private int recLen = 11; private TextView txtView; Timer timer = new Timer(); public void onCreate(Bundle savedInstanceState){ super.onC

  • Android倒计时控件 Splash界面5秒自动跳转

    现在很多app的首页都有一个倒计时控件,比如说3秒或者5秒自动跳转界面,或者点击控件直接跳过 首先,自定义控件CircleProgressbar(参考网上资料) package com.zhoujian.mykeep.view; import android.annotation.TargetApi; import android.content.Context; import android.content.res.ColorStateList; import android.content.

随机推荐