Android Studio学习之APP开屏计时跳过功能实现(详细版)

一、前言

本文所实现的功能类似APP开屏广告(有计时和跳过),之前找过不少博客看,但是感觉写的不够详细,对于初学者来说感觉还是较难理解,所以为了更好的理解和加深理解,特写此篇,希望可以帮助你!

二、实现步骤

2.1 新建项目

选择 “Empty Views Activity” 点击下一步

填入项目名称,注意编程语言要选 “Java

点击完成后,再等一会项目就建好了

2.2 新建活动文件

按图片操作

选择 “Empty Views Activity” 点击下一步

填入Activity名字,注意要勾选 “Generate a Layout File”,点击完成

把文件展开就可看到新建的活动页

2.3 代码编写

①activiy_splash.xml

虽然可以通过代码来增加文本控件,不过我推荐通过拖拽的方式添加

直接拖 “TextView” 就可以把文本框控件拿出来,接下来就是定位

通过拉取定位线,把文本框定在想要显示的位置上,通过点击定位线边上的圆圈变成 “%”,可以保证按比例显示文本框

点击文本框,会出现四个小白点,然后拉点到边和点位线上。被吸附的小白点会变成蓝点,再在右边修改 “layout_width” 和 “layout_height” 改为0dp即可,文本框的大小就被限制在定位线范围了

设置文本框居中

点击图中+号,在多出的内输入“gravity” 中选择 center 

设置文本框文字

因为显示内容与设定的时间有关,如果是想设定5秒,那就需要改为 “跳过5s”

原本控件显示 “TextView”,通过修改text里的内容就可以修改文本框显示的内容,改为“跳过5s”,因为这里的定时就是5s

最终效果

②SplashActivity.java

这个代码分为两个部分,一个是时间到了就跳转到主界面,另一个点击文本框跳过进入主界面

其实刚开始学习的时候,我也不知道代码应该写在哪里。不要管这一大坨东西,代码写在 “return insets;” ,变量一般定义在 “protected void onCreate()” 外面

public class SplashActivity extends AppCompatActivity {

    //定义变量
    private int secondsRemaining = 5; // 倒计时初始值
    private TextView countdownTextView;
    private Handler handler;
    private Runnable runnable;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_splash);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);


            //获取显示时间的文本框对象
            countdownTextView = findViewById(R.id.textView);

            handler = new Handler();
            runnable = new Runnable() {
                @Override
                public void run() {
                    secondsRemaining--;

                    //更新文本框显示内容
                    countdownTextView.setText("跳过"+secondsRemaining+"s");

                    if(secondsRemaining > 0){
                        handler.postDelayed(this,1000);

                    }else{
                        //倒计时结束,跳转到主活动
                        Intent intent = new Intent(SplashActivity.this, MainActivity.class);
                        startActivity(intent);
                        finish();
                    }

                }

            };

            //调用线程
            handler.postDelayed(runnable, 1000);

            //给文本框添加点击事件:点击跳过功能
            countdownTextView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //结束倒计时跳转的线程,如果不介绍,直接跳转页面会出现跳两次页的问题
                    handler.removeCallbacks(runnable);

                    //切换页面
                    Intent intent = new Intent(SplashActivity.this, MainActivity.class);
                    startActivity(intent);
                    finish();
                }
            });
            return insets;
        });
    }
}

③设置默认起始页

点开 “AndroidMainifest.xml

把图片圈的地方互换就OK了

三、功能完善建议

这个实现是最简单的功能,只显示文字,可以增加图片→视频→广告,甚至是其他形式的开屏广告(摇一摇广告),其核心都是页面的切换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值