android军火库:闪屏页面SplashActivity

慢慢熟悉了Android的开发流程之后,就会发现很多功能或者页面都是相似或者类似的,只是组合的方式不太一样。每次都去写一遍,无疑会浪费大量的时间与精力。如果能像搭积木一样,那无疑会省时省力,简单暴力。本篇文章就从最最常见的几乎每个工程都会用到的闪屏界面开始入手。

启动页面

Android的众多应用需要一定量的时间去启动,尤其是在冷启动上的延时启动,这是无法避免的,与其在启动的时候留着白屏,为何不给用户展示有用的东西呢?在用户启动的时候,看闪屏所花费的时间,就是应用配置自己去启动所需要的时间。当然,如果是为了营销在启动页植入广告则是另一种使用场景。

最简单的使用

绑定布局之后,通过handler发送一个延时函数,指定2秒之后进行页面跳转。

//延时2s之后,跳转。
new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
    //直接跳转主页面
    Intent intent = new Intent(SplashActivity.this, LoginActivity.class);
    startActivity(intent);
    finish();
    }
}, 2000);

实现倒计时功能

许多应用启动时右上角会有一个半透明的按钮显示倒计时,可以点击跳过。首先分享下这个半透明的自定义形状。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#99c4c4c4" />
    <corners android:radius="20dp" />
    <stroke
        android:width="0.7dp"
        android:color="#7fffffff" />
</shape>

Android已经有一个已经封装好了的类,CountDownTimer。当然如果大家用不惯的话,也可以handler来实现,也并不麻烦。

private CountDownTimer countDownTimer = new CountDownTimer(2000, 1000) {
      @Override
      public void onTick(long millisUntilFinished) {
         btn_splash_jump.setText("跳过(" + millisUntilFinished / 1000 + "s)");
      }
      @Override
      public void onFinish() {
          btn_splash_jump.setText("跳过(" + 0 + "s)");
          //执行跳转逻辑
          goLoginActivity();
      }
}

CountDownTimer的构造方法中,第一个参数表示总时间,第二个参数表示间隔时间。意思就是每隔一秒会回调一次方法onTick,然后2秒之后会回调onFinish方法,完全不需要理会那些线程交互。然后在闪屏页面可见的情况下,开启倒计时,设置点击监听事件。

btn_splash_jump.setVisibility(View.VISIBLE);
countDownTimer.start();
btn_splash_jump.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
         goLoginActivity();
    }
});
发布了75 篇原创文章 · 获赞 227 · 访问量 33万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 撸撸猫 设计师: 设计师小姐姐

分享到微信朋友圈

×

扫一扫,手机浏览