You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android端无需依赖包创建Splash Screen(启动页)方法求助

Android端不依赖第三方包配置启动页的方法

步骤1:准备启动页图片资源

  • 将适配不同分辨率的启动页图片(如.png或.9.png)放入android/app/src/main/res下对应的drawable-xxx或mipmap-xxx文件夹,确保图片能适配不同屏幕尺寸。

步骤2:创建启动页布局文件

在android/app/src/main/res/layout目录下新建launch_screen.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/white"> <!-- 可根据需求设置背景色 -->

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/launch_image" <!-- 替换为你的图片文件名 -->
        android:scaleType="centerCrop" /> <!-- 可选:centerInside、fitXY等缩放类型 -->
</LinearLayout>

步骤3:配置启动主题

  1. 打开android/app/src/main/res/values/styles.xml,添加启动页专属主题:
<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@layout/launch_screen</item>
    <item name="android:windowFullscreen">true</item> <!-- 可选:开启全屏显示 -->
    <item name="android:windowContentOverlay">@null</item>
</style>
  1. 修改AndroidManifest.xml中主Activity的主题配置,将默认主题替换为上述SplashTheme:
<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:theme="@style/SplashTheme" <!-- 设置启动时使用的主题 -->
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
    android:launchMode="singleTask"
    android:windowSoftInputMode="adjustResize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

步骤4:切换回应用默认主题

打开android/app/src/main/java/com/你的项目包名/MainActivity.java(或Kotlin文件),在onCreate方法中先切换回应用默认主题,避免启动页布局残留:

Java版本:

@Override
protected void onCreate(Bundle savedInstanceState) {
    setTheme(R.style.AppTheme); // 替换为你的应用默认主题名称
    super.onCreate(savedInstanceState);
}

Kotlin版本:

override fun onCreate(savedInstanceState: Bundle?) {
    setTheme(R.style.AppTheme) // 替换为你的应用默认主题名称
    super.onCreate(savedInstanceState)
}

步骤5:优化RN初始化过渡(可选)

为避免RN加载时出现白屏,可在RN入口组件(如App.js)中先显示与原生启动页一致的组件,待RN初始化完成后再切换到首页:

import React, { useState, useEffect } from 'react';
import { View, Image, StyleSheet } from 'react-native';
import HomeScreen from './HomeScreen'; // 替换为你的首页组件

export default function App() {
  const [showSplash, setShowSplash] = useState(true);

  useEffect(() => {
    // 模拟RN初始化完成时机,实际可根据业务逻辑调整(如数据加载完成、AppState切换)
    const timer = setTimeout(() => setShowSplash(false), 1000);
    return () => clearTimeout(timer);
  }, []);

  if (showSplash) {
    return (
      <View style={styles.splashContainer}>
        <Image 
          source={require('./assets/launch_image.png')} // 替换为你的RN端启动图路径
          style={styles.splashImage} 
          resizeMode="cover" 
        />
      </View>
    );
  }

  return <HomeScreen />;
}

const styles = StyleSheet.create({
  splashContainer: {
    flex: 1,
    backgroundColor: 'white',
  },
  splashImage: {
    width: '100%',
    height: '100%',
  },
});

内容的提问来源于stack exchange,提问作者ctr1L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 08:03:26