软件编程
位置:首页>> 软件编程>> Android编程>> Android CountDownTimer实现定时器和倒计时效果

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

作者:lijiao  发布时间:2023-12-09 02:11:28 

标签: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>

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com