安卓开发入门基础之欢迎界面定时器简单设计

Welcome.xml布局

  • 布局构思比较随意。在垂直的线性布局右上角合适位置放置一个"跳过"文本框即可

Welcome.java

  • 进行相关的获取控件,此处不一 一做介绍,直接上代码+简单注释
  • 这里的Timer其实是一个调度器
Timer timer = new Timer();
private Handler handler;
private Runnable runnable;
private int tiaoguo_time = 6; 		//跳过倒计时提示6秒
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_welcome);

    // initView();				//获取控件自定义函数,此处省略
    
    timer.schedule(task, 0, 1000);	//等待时间一秒,停顿时间一秒

    //5s后自动跳过欢迎界面
    handler = new Handler();
    handler.postDelayed(runnable = new Runnable() {
        @Override
        public void run() {
            Intent intent = new Intent(welcome.this, MainActivity.class);
            startActivity(intent);
            finish();
        }
    }, 5000);
}
  • 还需要使用到多线程的TimerTask这个抽象类,它实现了Runnable接口,所以具备了多线程的能力。
  • 这里直接实现一个TimerTask(当然,你可以实现多个TimerTask,多个TimerTask可以被一个Timer会被分配到多个Timer中被调度,Timer的实现机制其实就是内部的调度机制)
  • 然后再去编写run方法,每秒执行一次,当然你通过一个timer对象来操作多个timerTask,其实timerTask本身没什么意义,只是和timer集合操作的一个对象,实现它就必然有对应的run方法,以被调用
TimerTask task = new TimerTask() {
    @Override
    public void run() {
        runOnUiThread(new Runnable() { // UI thread
            @Override
            public void run() {
                tiaoguo_time--;
                tiaoguo.setText(tiaoguo_time + "s 跳 过 ");
                if (tiaoguo_time < 1) {
                    timer.cancel();
                    tiaoguo.setVisibility(View.GONE);//倒计时到0隐藏字体
                }
            }
        });
    }
};
  • 当然我们还要实现对点击了的情况的监听,停止计时器
/*点击跳过*/
@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.tiaoguo:
            //从欢迎界面跳转到首界面
            Intent intent = new Intent(welcome.this, MainActivity.class);
            startActivity(intent);
            finish();
            if (runnable != null) {
                handler.removeCallbacks(runnable);
            }
            break;
        default:
            break;
    }
}

效果图

  • 类似下图实现效果,会自动减秒数

在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【无痕干货营】

如果帮助到您,欢迎打赏一下我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值