2013-02-13 20 views
10

Cosa devo inserire in config.xml o cosa devo fare in generale, per visualizzare correttamente la schermata iniziale dell'applicazione PhoneGap Build sul dispositivo Android in modalità orizzontale?Schermata iniziale di paesaggio per Android in PhoneGap Build

PhoneGap Build (utilizzato per compilare) docs/blog non ha nulla su questo. Solo Portrait è coperto per Android.

Dal primo (docs) dice che l'uso di height e width è supportato cross-platform, ho provato ad usarlo:

<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" /> 

ma non v'è alcun effetto - in modalità orizzontale sul mio dispositivo Android ho sempre vedere la versione in modalità portabilità della mia schermata iniziale.

risposta

8

Secondo le mie attuali conoscenze e dopo una ricerca approfondita, ho scoperto che questo è un bug confermato e al momento non possiamo fare nulla al riguardo.

PhoneGap Build (e probabilmente anche PhoneGap stesso) al momento non supporta affatto gli splash screen del paesaggio. Ho anche provato il modo iOS (come mostrato nella domanda - usando i parametri width e height, ufficialmente non supportato per Android). Ma ancora non funziona.

Tutto va bene in modalità verticale, ma non importa quale sia la densità dello schermo del dispositivo Android che utilizzerai: in orizzontale vedrai la brutta e deformata versione verticale dello splash screen.

+4

Apparentemente questo è tracciato [qui] (https://github.com/phonegap/build/issues/198) –

6

Non sto utilizzando PhoneGap Build, ma sono riuscito a risolvere il problema in un'app Android PhoneGap di base.

Supponiamo di avere due diverse immagini di schizzi - una versione orizzontale e una verticale - e che entrambe si allunghino per riempire l'area dello schermo disponibile.

Inserire uno in drawable e l'altro in drawable-land. (O drawable-land-hdpi, drawable-land-xhdpi, ecc, se si dispone di più dimensioni.)

Quindi, assicurarsi che si sta gestendo config te cambia in AndroidManifest.xml:

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

Poi mettere questo nella vostra attività principale classe che estende 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); 
    } 
} 

questo modo l'immagine di sfondo per ridisegnare e correttamente allungare ogni volta che l'utente cambia orientamento.

+1

Questa è una soluzione di bell'aspetto (quindi +1), ma non ho intenzione di accettarlo in quanto è troppo fuori tema. L'idea della mia domanda era di portare una risposta specifica a PhoneGap Build, cioè usando solo HTML/Javascript e 'config.xml'. Non sei abile nell'usare il puro codice Java nelle app PhoneGap Build, vero? – trejder

+0

@trejder sì, è possibile utilizzare il codice Java in un'app PhoneGap. –

+0

@LarryAasen No, non puoi! Leggi il mio commento. Sto parlando di _PhoneGap ** Build ** _. Quando si utilizza [PGB] (https://build.phonegap.com/) (creazione nel cloud) si è limitati solo a HTML/Javascript. È possibile utilizzare solo il codice Java puro, se si sta costruendo localmente, nel proprio ambiente. – trejder

2

Può essere fatto dall'aprile 2014 a PhoneGap costruire utilizzando il gap:qualifer, ad esempio

<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" /> 

Vedi this e this articolo per i dettagli.

Problemi correlati