android之启动页面(SplashActivity)

2020-12-01 10:53:37 浏览数 (1)

image.png

SplashActivity

打开一个应用程序时,会有一个类似欢迎的界面,它叫SplashActivity。

一般在这个页面可以做一些App数据初始化的工作。

实现的效果当用户点击App icon后,进入SplashActivity,大约经过1~2秒跳转到程序的主界面。

实战代码

SplashActivity实现全屏:

代码语言:javascript复制
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

注意必须在setContentView前调用。

为了简单处理 这里在加载主要的active时候只做了个等待处理:

代码语言:javascript复制
sleep(3000);

SplashActivity的xml:

代码语言:javascript复制
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".SplashActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.977" />

</androidx.constraintlayout.widget.ConstraintLayout>

主页的active: ··· package com.exmple.splashactivity;

import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.Window; import android.view.WindowManager;

import androidx.appcompat.app.AppCompatActivity;

public class HomeActivity extends BaseActive {

代码语言:javascript复制
public static void goHome(Context context) {
    Intent intent = new Intent(context, HomeActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    context.startActivity(intent);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
}

} ···

在SplashActivity中调用:

代码语言:javascript复制
       try {
            sleep(5000);//使程序休眠一秒
            HomeActivity.goHome(this);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

实现active的切换。

SplashActivity的全部代码:

代码语言:javascript复制
package com.exmple.splashactivity;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;

import static java.lang.Thread.sleep;

public class SplashActivity extends BaseActive {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try {
            sleep(3000);//使程序休眠一秒
            HomeActivity.goHome(this);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}

0 人点赞