Android开屏页倒计时功能实现的详细教程

最近我司产品提出了一个很常见的需求:App 在开屏页(Splash 界面) 需要加上一个 3s 倒计时按钮,可以选择看 3s 的广告,或者点击按钮跳过广告。

为邓州等地区用户提供了全套网页设计制作服务,及邓州网站建设行业解决方案。主营业务为网站设计制作、成都网站制作、邓州网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

Android开屏页倒计时功能实现的详细教程

一、布局实现(使用 FrameLayout 悬浮在广告的右上角,显示倒计时的 TextView 的宽高尽量不要写死,要考虑字体很多的情况!!)

  

    
  

二、TextView 背景的 @drawable/bg_start_page_circle 用系统 shape 实现,不需要 UI 帮我们切图

<?xml version="1.0" encoding="utf-8"?>


  

  

  



三、在 onCreate() 里面找到显示倒计时的 TextView

  private TextView mCountDownTextView;
 /**
   * Created by KeithXiaoY on 2017/06/07.
   */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    mCountDownTextView = (TextView) findViewById(R.id.start_skip_count_down);
  }

四、倒计时实现(使用 Android 系统原生的倒计时控件 CountDownTimer 实现)

  class MyCountDownTimer extends CountDownTimer {
    /**
     * @param millisInFuture
     *   表示以「 毫秒 」为单位倒计时的总数
     *   例如 millisInFuture = 1000 表示1秒
     *
     * @param countDownInterval
     *   表示 间隔 多少微秒 调用一次 onTick()
     *   例如: countDownInterval = 1000 ; 表示每 1000 毫秒调用一次 onTick()
     *
     */

    public MyCountDownTimer(long millisInFuture, long countDownInterval) {
      super(millisInFuture, countDownInterval);
    }


    public void onFinish() {
      mCountDownTextView.setText("0s 跳过");
    }

    public void onTick(long millisUntilFinished) {
      mCountDownTextView.setText( millisUntilFinished / 1000 + "s 跳过");
    }

  }

五、根据具体的业务逻辑完整实现

  private TextView mCountDownTextView;
  private MyCountDownTimer mCountDownTimer;
 /**
   * Created by KeithXiaoY on 2017/06/07.
   */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    ...
    mCountDownTextView = (TextView) findViewById(R.id.start_skip_count_down);
      //我司需求,在没有 Banner 广告的时候一秒跳过开屏页,有 Banner 广告的时候三秒跳过
    if (PreferencesFactory.getCommonPref().getBoolean(CommonPreferences.PREFS_HAS_START_PAGE_BANNER, false)) {
      mCountDownTextView.setText("3s 跳过");
      //创建倒计时类
      mCountDownTimer = new MyCountDownTimer(3000, 1000);
      mCountDownTimer.start();
      //这是一个 Handler 里面的逻辑是从 Splash 界面跳转到 Main 界面,这里的逻辑每个公司基本上一致
      tmpHandler.postDelayed(runnable, 3000);
    } else {
      mCountDownTextView.setText("1s 跳过");
      mCountDownTimer = new MyCountDownTimer(1000, 1000);
      mCountDownTimer.start();
      tmpHandler.postDelayed(runnable, 1000);
    }
  }

六、注意事项(一定记得在界面销毁的时候将 CountDownTimer 销毁)

  @Override
  protected void onDestroy() {
    if (mCountDownTimer != null) {
      mCountDownTimer.cancel();
    }
    super.onDestroy();
  }

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


网页名称:Android开屏页倒计时功能实现的详细教程
网站网址:http://myzitong.com/article/ghosdi.html