PhoneGap / Cordova启动画面宽高比问题

12

我创建了我的PhoneGap应用程序,一切正常,但启动画面让我很烦恼。它会显示出来,但不是完美的纵横比(在Nexus 6上测试)。它的宽度会被挤压。

我目前的启动画面config.xml配置如下:

<gap:splash src="www/res/screen/android/land_xxhdpi.png" />
<gap:splash src="www/res/screen/android/ldpi.png" gap:platform="android" gap:qualifier="port-ldpi"/>
<gap:splash src="www/res/screen/android/mdpi.png" gap:platform="android" gap:qualifier="port-mdpi"/>
<gap:splash src="www/res/screen/android/hdpi.png" gap:platform="android" gap:qualifier="port-hdpi"/>
<gap:splash src="www/res/screen/android/xhdpi.png" gap:platform="android" gap:qualifier="port-xhdpi"/>
<gap:splash src="www/res/screen/android/xxhdpi.png" gap:platform="android" gap:qualifier="port-xxhdpi"/>
<gap:splash src="www/res/screen/android/land_ldpi.png" gap:platform="android" gap:qualifier="land-ldpi"/>
<gap:splash src="www/res/screen/android/land_mdpi.png" gap:platform="android" gap:qualifier="land-mdpi"/>
<gap:splash src="www/res/screen/android/land_hdpi.png" gap:platform="android" gap:qualifier="land-hdpi"/>
<gap:splash src="www/res/screen/android/land_xhdpi.png" gap:platform="android" gap:qualifier="land-xhdpi"/>
<gap:splash src="www/res/screen/android/land_xxhdpi.png" gap:platform="android" gap:qualifier="land-xxhdpi"/>

<preference name="SplashScreenBackgroundColor" value="#e8413d" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="3500" />
<preference name="SplashMaintainAspectRatio" value="false" />

有什么办法可以解决吗?9 patch对我没用,我不知道为什么,我也不理解那个工具。

希望有人可以帮忙。

2个回答

32

将此偏好设置更改为 true:

<preference name="SplashMaintainAspectRatio" value="true" />

它将保持您的闪屏纵横比,并使闪屏图像填充屏幕,而无需拉伸。可以将其视为等效于css样式background-size: cover;


1
这应该是被选中的答案。 - Nick
当我更新到cordova 11和Android 12时,这对于纵横比破裂非常有帮助;另请参见2020年的Capacitor问题 - kubi

2
为了在所有Android版本中覆盖patch-9标志,我需要进行以下操作:
<preference name="SplashScreen" value="background" />

并禁用MaintainAspectRatio值:

<!-- <preference name="SplashMaintainAspectRatio" value="true" /> -->

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接