React Native 打包Android应用设置启动页

313 阅读1分钟

在应用启动时,在加载js等资源的时候,会有短暂的白屏时间,可以通过设置图片来优化

一、安装依赖

// 根目录执行
yarn add react-native-splash-screen

二、创建布局文件

  1. 在android/app/src/main/res目录创建 layout/launch_screen.xml
<?xml version="1.0" encoding="utf-8">
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
>
    <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/launch_screen" android:scaleType="centerCrop"></ImageView>
</RelativeLayout>

  1. 在android/app/src/values创建colors.xml
<?xml version="1.0" encoding="utf-8">
<resources>
    <color name="colorPrimaryDark">#FFFFFF</color>
</resources>
  1. 然后在styles.xml中添加以下代码
<resources>
    ...
    <style name="SplashScreenTheme" parent="SplashScreen_SplashTheme">
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    </style>
</resources>
  1. 在android/app/src目录中创建drawable-xhdpidrawable-xxadpi 两个目录,并分别放入启动图片, 如:launch_screen.png
  2. 在android/app/src/main/java/com/项目名/MainActivity.kt添加以下代码
...
import android.os.Bundle;
import org.devio.rn.splashscreen.splashscreen;

class MainActivity : ReactActivity() {
  ...
  // 重写onCreate方法,整个RN项目的加载入口
  override fun onCreate(Bundle savedInstanceState) {
    Splashscreen.show(this, R.style.SplashScreenTheme);
    super.onCreate(savedInstanceState);
  }
}

6.然后在项目根目录执行

yarn android