我应该进入什么config.xml
或者我应该做的一般,拥有的PhoneGap构建应用程序的启动画面正确地显示在横向模式的Android设备上?
PhoneGap的生成(用于编译) 文档 / 博客对此有什么。 只有纵向覆盖为Android。
由于第一(文档)说,使用height
和width
是支持跨平台,我试图使用它:
<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波泰特模式版本上。
按我目前的知识和深入的研究后,我发现这是一个确认的错误,我们目前还不能做到这事。
PhoneGap的构建(及可能的PhoneGap本身以及)目前完全不支持横向闪屏。 我甚至尝试了iOS的方式(如所示的问题-使用width
和height
参数,可以正式不支持Android)。 但它仍然无法正常工作。
所有处于纵向模式很好,但不管你使用什么屏幕像素密度的Android设备 - 景观你会看到启动画面的丑陋畸形肖像版本。
我没有使用PhoneGap的建设,但我设法在一个基本的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);
}
}
这将导致背景图像重绘和正确伸展每当用户改变方向。
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" />
见这个和这个文章的细节。