10

config.xmlランドスケープモードのAndroidデバイスでPhoneGapBuildアプリケーションのスプラッシュ画面を正しく表示するには、何を入力する必要がありますか、または一般的に何をする必要がありますか?

PhoneGap Build(コンパイルに使用)ドキュメント/ブログにはこれについて何もありません。AndroidではPortraitのみが対象です。

最初の(docs)は、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デバイスのランドスケープモードでは、スプラッシュ画面のストレックヘッドポートレートモードバージョンが常に表示されます。

4

3 に答える 3

8

私の現在の知識と詳細な調査の結果、これは確認済みのバグであることがわかりました。現在、これについては何もできません。

PhoneGap Build(およびおそらくPhoneGap自体も)は現在、横向きのスプラッシュ画面をまったくサポートしていません。私もiOSの方法を試しました(質問に示されているように-使用widthheightパラメータ、Androidでは公式にはサポートされていません)。しかし、それでも機能しません。

ポートレートモードではすべて問題ありませんが、使用する画面密度のAndroidデバイスに関係なく、ランドスケープでは、スプラッシュ画面の醜い変形したポートレートバージョンが表示されます。

于 2013-02-14T20:48:40.147 に答える
6

PhoneGap Buildを使用していませんが、基本的なPhoneGapAndroidアプリでこれを修正することができました。

横向きと縦向きの2つの異なるスプラッシュ画像があり、両方を引き伸ばして使用可能な画面領域全体に表示するとします。

1つを入れdrawable、もう1つを入れdrawable-landます。(またはdrawable-land-hdpidrawable-land-xhdpi複数のサイズがある場合は、など。)

次に、構成の変更を自分で管理していることを確認しますAndroidManifest.xml

<activity
    ...
    android:configChanges="orientation|screenSize|keyboardHidden"
    ...
>
</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 に答える