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

Ionic Cordova迁移至Android12+:多尺寸启动屏配置方法问询

Ionic Cordova迁移到Android 12(API 32):多尺寸启动屏配置方案

问题背景

将Ionic Cordova应用迁移至Android 12(API 32)时,原有的<splash>标签已不再生效,需改用<preference name="AndroidWindowSplashScreenAnimatedIcon" value="path to xml/png" />配置启动屏。此前通过cordova-res生成了多尺寸的<splash>标签配置(如下),现需转换为新的配置方式实现多尺寸适配:

<splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
<splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
<splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
<splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
<splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
<splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
<splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
<splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
<splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
<splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
<splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
<splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />

解决方案

利用Android原生的资源密度适配机制,无需为每个尺寸单独配置preference,只需按规范组织资源并统一引用即可:

1. 整理启动屏资源到Android原生目录

把cordova-res生成的多尺寸图片,按Android资源目录结构移动到platforms/android/app/src/main/res/下:

  • 竖屏图片:分别放入drawable-port-ldpi/、drawable-port-mdpi/、drawable-port-hdpi/、drawable-port-xhdpi/、drawable-port-xxhdpi/、drawable-port-xxxhdpi/目录,所有图片统一命名(比如splash_icon.png)
  • 横屏图片:分别放入drawable-land-ldpi/、drawable-land-mdpi/、drawable-land-hdpi/、drawable-land-xhdpi/、drawable-land-xxhdpi/、drawable-land-xxxhdpi/目录,同样统一命名

2. 在config.xml中配置统一的启动屏引用

只需要添加一条preference配置,Android会自动根据设备密度加载对应目录的资源:

<!-- 引用统一命名的图片资源 -->
<preference name="AndroidWindowSplashScreenAnimatedIcon" value="@drawable/splash_icon" />

3. 可选:增强配置

  • 设置启动屏背景色:
<preference name="AndroidWindowSplashScreenBackgroundColor" value="#你的背景色值" />
  • 设置启动屏图标大小(单位dp):
<preference name="AndroidWindowSplashScreenIconSize" value="48dp" />

4. (可选)使用XML动画启动屏

如果需要动画效果,可在res/drawable/下创建动画XML文件(比如splash_animation.xml),引用不同密度的资源或使用矢量动画,然后在preference中引用该XML:

<preference name="AndroidWindowSplashScreenAnimatedIcon" value="@drawable/splash_animation" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:27:26