Android CountDownTimer实现定时器和倒计时效果

本文实例为大家分享了Android实现定时器和倒计时的具体代码,供大家参考,具体内容如下

直接上代码,相信都看得懂。

Android已经帮封装好了一个类,只不过很多人不知道而已。

代码:

public class SplashActivity extends BaseAppCompatActivity { 

  @InjectView(R.id.ivBg)
  ImageView ivBg;
  @InjectView(R.id.tvSkip)
  TextView tvSkip; 

  int[] imgs = new int[]{
      R.mipmap.irving,
      R.mipmap.bryant,
      R.mipmap.james,
      R.mipmap.harden,
      R.mipmap.curry}; 

  private CountDownTimer timer; 

  @Override
  protected int getContentViewLayoutID() {
    return R.layout.activity_splash;
  } 

  @Override
  protected void initViewsAndEvents() {
    int index = (int) (Math.random() * imgs.length); 

    ivBg.setImageResource(imgs[index]); 

    timer = new CountDownTimer(3500, 1000) {
      @Override
      public void onTick(long millisUntilFinished) {
        tvSkip.setText(String.format(getResources().getString(R.string.skip), (int) (millisUntilFinished / 1000 + 0.1)));
      } 

      @Override
      public void onFinish() {
        tvSkip.setText(String.format(getResources().getString(R.string.skip), 0));
        startActivity(new Intent(mContext, HomeActivity.class));
        finish();
      }
    };
    timer.start();
  } 

  @OnClick(R.id.tvSkip)
  public void skip() {
    if (timer != null)
      timer.cancel(); 

    startActivity(new Intent(mContext, HomeActivity.class));
    finish();
  } 

  @Override
  protected void onDestroy() {
    super.onDestroy(); 

    if (timer != null) {
      timer.cancel();
    }
  }
} 

调用的时候很简单:timer.start();

最后说明一下:CountDownTimer timer = new CountDownTimer(3500, 1000)中,第一个参数表示总时间,第二个参数表示间隔时间。意思就是每隔一秒会回调一次方法onTick,然后10秒之后会回调onFinish方法。

布局activity_splash.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"> 

  <ImageView
    android:id="@+id/ivBg"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="fitXY" /> 

  <TextView
    android:id="@+id/tvSkip"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_margin="10dp"
    android:background="@drawable/common_button_selector"
    android:padding="5dp"
    android:text="@string/skip" /> 

</RelativeLayout>

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

您可能感兴趣的文章:

  • Android仿活动时分秒倒计时效果
  • Android自定义DigitalClock控件实现商品倒计时
  • Android计时与倒计时实现限时抢购的5种方法
  • Android定时器和倒计时实现淘宝秒杀功能
  • android自定义倒计时控件示例
  • android实现倒计时功能代码
  • Android实现计时与倒计时的常用方法小结
  • Android实现加载广告图片和倒计时的开屏布局
  • Android 实现闪屏页和右上角的倒计时跳转实例代码
  • Andorid实现精确到天时分秒的抢购倒计时
(0)

相关推荐

  • Andorid实现精确到天时分秒的抢购倒计时

    今天项目用到了抢购时倒计时的功能 ,今天找了好多哥们,也百度了好多,但是没有自己喜欢并且能消化的.好不容易找到了一个能容易看懂的,然而又不符合我想要的需求,所以自己搞一下.不知道是否简单,但是最起码是项目的功能可以实现.(一下午,没白费.开心) 直接上代码好了,我相信都能看懂.我除外.(我搞了一下午)哎.反正现在懂点了... package com.qust.widght; import java.text.SimpleDateFormat; import java.util.Date; imp

  • Android定时器和倒计时实现淘宝秒杀功能

    本文实例为大家分享了Android实现淘宝秒杀的具体代码,供大家参考,具体内容如下 目录结构 效果图: imageViewHolder public class imageViewHolder extends RecyclerView.ViewHolder { public ImageView imageView; public imageViewHolder(View itemView) { super(itemView); imageView = (ImageView) itemView;

  • 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仿活动时分秒倒计时效果

    本文实例为大家分享了Android时分秒倒计时效果的具体代码,供大家参考,具体内容如下 从mian.xml下手: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:l

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

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

  • 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自定义DigitalClock控件实现商品倒计时

    本文实例为大家分享了DigitalClock实现商品倒计时的具体代码,供大家参考,具体内容如下 自定义DigitalClock控件: package com.veally.timesale; import java.util.Calendar; import android.content.Context; import android.database.ContentObserver; import android.os.Handler; import android.os.SystemClo

  • Android计时与倒计时实现限时抢购的5种方法

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

  • 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;

随机推荐