10

我应该输入config.xml什么或一般应该做什么,才能让 PhoneGap Build 应用程序的启动屏幕在 Android 设备上以横向模式正确显示?

PhoneGap Build(用于编译)文档/博客对此一无所知。仅适用于 Android 的肖像。

由于 first (docs) 说 using heightandwidth是跨平台支持的,所以我尝试使用它:

<gap:splash src="res/splash-200x320-android.png"             gap:platform="android" gap:density="ldpi"  width="200" height="320" />
<gap:splash src="res/splash-320x480-android-bada-ios.png"    gap:platform="android" gap:density="mdpi"  width="320" height="480" />
<gap:splash src="res/splash-480x800-android-bada-wp.png"     gap:platform="android" gap:density="hdpi"  width="480" height="800" />
<gap:splash src="res/splash-720x1280-android.png"            gap:platform="android" gap:density="xhdpi" width="720" height="1280" />
<gap:splash src="res/splash-320x200-android.png"             gap:platform="android" gap:density="ldpi"  width="320" height="200" />
<gap:splash src="res/splash-480x320-android-bada-ios.png"    gap:platform="android" gap:density="mdpi"  width="480" height="320" />
<gap:splash src="res/splash-800x480-android-bada-wp.png"     gap:platform="android" gap:density="hdpi"  width="800" height="480" />
<gap:splash src="res/splash-1280x720-android.png"            gap:platform="android" gap:density="xhdpi" width="1280" height="720" />

但是没有效果——在我的 Android 设备上的横向模式下,我总是看到我的初始屏幕的严重的 strechead portait 模式版本。

4

3 回答 3

8

根据我目前的知识和深入研究,我发现这是一个已确认的错误,我们目前对此无能为力。

PhoneGap Build(可能还有 PhoneGap 本身)目前根本不支持横向闪屏。我什至尝试了 iOS 方式(如问题所示——使用widthheight参数,Android 官方不支持)。但它仍然不起作用。

在纵向模式下一切都很好,但无论您使用何种屏幕密度的 Android 设备——在横向模式下,您都会看到丑陋的变形纵向版本的初始屏幕。

于 2013-02-14T20:48:40.147 回答
6

我没有使用 PhoneGap Build,但我设法在一个基本的 PhoneGap Android 应用程序中解决了这个问题。

假设您有两个不同的初始图像 - 横向和纵​​向版本 - 您希望它们都拉伸以填充可用的屏幕区域。

一个放进去drawable,另一个放进去drawable-land。(或者drawable-land-hdpi,drawable-land-xhdpi等,如果您有多种尺寸。)

接下来,确保您自己管理配置更改AndroidManifest.xml

<activity
    ...
    android:configChanges="orientation|screenSize|keyboardHidden"
    ...
>
</activity>

然后把它放在扩展的主 Activity 类中DroidGap.java

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if (super.splashDialog != null) {
        ViewGroup rootView = (ViewGroup) super.splashDialog.getWindow()
                .getDecorView().findViewById(android.R.id.content);
        LinearLayout linearLayout = (LinearLayout) rootView.getChildAt(0);
        // manually refresh the splash image
        linearLayout.setBackgroundDrawable(null);
        linearLayout.setBackgroundResource(R.drawable.mysplash);
    }
}

这将导致背景图像在用户改变方向时重新绘制并正确拉伸。

于 2013-03-20T10:56:56.603 回答
3

Phonegap Build 现在使用Cordova 配置风格。指定时density,追加port-land-指定纵向或横向:

<splash src="portrait-ldpi.png" density="port-ldpi"/>
<splash src="landscape-ldpi.png" density="land-ldpi"/>

老配置风格

自 2014 年 4 月以来,它可以在 Phonegap Build 中使用gap:qualifer,例如

<gap:splash src="portrait-xxhdpi.png" gap:platform="android" gap:qualifier="port-xxhdpi" />
<gap:splash src="landscape-xxhdpi.png" gap:platform="android" gap:qualifier="land-xxhdpi" />

有关详细信息,请参阅本文本文

于 2015-06-19T09:36:57.117 回答