CountDownTimer实现按钮倒计时

activity_splash.xml中进行布局:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:background="@drawable/launch_bg"
 7     tools:context=".activity.SplashActivity">
 8 
 9     <Button
10         android:id="@+id/btn_skip"
11         android:layout_width="wrap_content"
12         android:layout_height="wrap_content"
13         android:layout_alignParentBottom="true"
14         android:layout_centerHorizontal="true"
15         android:text="跳过"
16         android:textColor="#FFFFFF"
17         android:textStyle="bold"
18         android:textSize="18sp"
19         android:background="@drawable/btn_skip"
20         android:layout_marginBottom="70dp"/>
21 
22 </RelativeLayout>

CountDownTimer(5*1000,1000) 第一个参数是总时间,第二个参数是时间间隔,单位为毫秒

 1 public class SplashActivity extends AppCompatActivity {
 2 
 3     private Button btn_skip;
 4     CountDownTimer timer;
 5 
 6     @Override
 7     protected void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         setContentView(R.layout.activity_splash);
10         init();
11     }
12 
13     private void init() {
14         //初始化布局
15         btn_skip = (Button)findViewById(R.id.btn_skip);
16 
17        timer = new CountDownTimer(5*1000,1000) {
18            @Override
19            public void onTick(long l) {//计时过程显示
20 //               btn_skip.setText((l/1000+1) + "秒");
21            }
22 
23            @Override
24            public void onFinish() {  //计时完毕时触发
25                //界面跳转
26                 Intent intent = new Intent(SplashActivity.this,MainActivity.class);
27                 startActivity(intent);
28                 //关闭SplashActivity
29                 SplashActivity.this.finish();
30            }
31 
32        }.start();
33 
34         btn_skip.setOnClickListener(new View.OnClickListener() {
35             @Override
36             public void onClick(View view) {
37                 //界面跳转
38                 Intent intent = new Intent(SplashActivity.this,MainActivity.class);
39                 startActivity(intent);
40                 //关闭SplashActivity
41                 SplashActivity.this.finish();
42             }
43         });
44 
45     }
46     //销毁timer
47     @Override
48     protected void onDestroy() {
49         super.onDestroy();
50         if (timer!=null) {
51             timer.cancel();
52         }
53     }
54 
55 }
原文地址:https://www.cnblogs.com/chaunceyji/p/10939773.html