在PhoneGap的构建景观闪屏的Android(Landscape splash screen f

2019-07-19 19:42发布

我应该进入什么config.xml或者我应该做的一般,拥有的PhoneGap构建应用程序的启动画面正确地显示在横向模式的Android设备上?

PhoneGap的生成(用于编译) 文档 / 博客对此有什么。 只有纵向覆盖为Android。

由于第一(文档)说,使用heightwidth是支持跨平台,我试图使用它:

<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波泰特模式版本上。

Answer 1:

按我目前的知识和深入的研究后,我发现这是一个确认的错误,我们目前还不能做到这事。

PhoneGap的构建(及可能的PhoneGap本身以及)目前完全不支持横向闪屏。 我甚至尝试了iOS的方式(如所示的问题-使用widthheight参数,可以正式不支持Android)。 但它仍然无法正常工作。

所有处于纵向模式很好,但不管你使用什么屏幕像素密度的Android设备 - 景观你会看到启动画面的丑陋畸形肖像版本。



Answer 2:

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

比方说,你有两个不同色斑图像 - 风景和肖像版本 - 你希望他们两个拉伸以填充可用屏幕区域。

把一个在drawable和其他在drawable-land 。 (或者drawable-land-hdpidrawable-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);
    }
}

这将导致背景图像重绘和正确伸展每当用户改变方向。



Answer 3:

PhoneGap的构建现在使用科尔多瓦配置风格 。 当指定density ,添加port-land-指定纵向或横向:

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

旧的配置风格

它可以自2014年4月在PhoneGap的构建,通过使用来完成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" />

见这个和这个文章的细节。



文章来源: Landscape splash screen for Android in PhoneGap Build