2013-02-13 19 views
10

Co powinienem podać config.xml lub co powinienem zrobić, aby ekran powitalny aplikacji PhoneGap Build był prawidłowo wyświetlany na urządzeniu z Androidem w trybie poziomym?Ekran powitalny dla systemu Android w PhoneGap Build

PhoneGap Build (używane do kompilacji) docs/blog nic na ten temat. Tylko portret jest objęty systemem Android.

Od pierwszych (Dokumenty) mówi, że za pomocą height i width jest cross-platform obsługiwana, starałem się go używać:

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

Ale nie ma żadnego wpływu - w trybie poziomym na urządzeniu z Androidem zawsze zobacz źle działającą wersję mojego ekranu powitalnego w trybie strechead portait.

Odpowiedz

8

Zgodnie z moją obecną wiedzą i po głębokich badaniach, stwierdziłem, że jest to potwierdzony błąd, a obecnie nie możemy nic z tym zrobić.

Aplikacja PhoneGap Build (i prawdopodobnie także sama PhoneGap) aktualnie nie obsługuje w ogóle ekranów z widokiem krajobrazowym. Próbowałem nawet sposobu na iOS (jak pokazano w pytaniu - używając parametrów width i height, oficjalnie nieobsługiwanych dla Androida). Ale nadal nie działa.

Wszystko jest w porządku w trybie portretu, ale bez względu na to, na jakim ekranie znajduje się urządzenie z Androidem - w krajobrazie zobaczysz brzydko zdeformowaną portretową wersję ekranu powitalnego.

+4

Najwyraźniej jest to śledzone [tutaj] (https://github.com/phonegap/build/issues/198) –

6

Nie używam Build PhoneGap, ale udało mi się to naprawić w podstawowej aplikacji PhoneGap dla systemu Android.

Załóżmy, że masz dwa różne obrazy powitalne - krajobraz i wersję portretową - i chcesz, aby oba z nich rozciągnęły się, aby wypełnić dostępny obszar ekranu.

Umieść jeden w drawable, a drugi w drawable-land. (Lub drawable-land-hdpi, drawable-land-xhdpi itd, jeśli masz wiele rozmiarów.)

Następnie upewnij się, że jesteś zarządzania config zmienia się w AndroidManifest.xml:

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

Następnie umieścić to w swojej głównej działalności Klasa, która rozciąga 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); 
    } 
} 

To spowoduje, że obraz tła do przerysowania i prawidłowo naciągnąć, gdy użytkownik zmieni orientację.

+1

To jest ładnie wyglądające rozwiązanie (więc +1), ale nie zamierzam tego zaakceptować jest zbyt nie na temat. Ideą mojego pytania było przyniesienie odpowiedzi specyficznej dla PhoneGap Build - czyli tylko za pomocą HTML/Javascript i 'config.xml'. Nie masz abonamentu na używanie czystego kodu Java w aplikacjach PhoneGap Build, prawda? – trejder

+0

@trejder Tak, możesz użyć kodu Java w aplikacji PhoneGap. –

+0

@LarryAasen Nie, nie możesz! Przeczytaj mój komentarz. Mówię o _PhoneGap ** Build ** _. Używając [PGB] (https://build.phonegap.com/) (budynek w chmurze), jesteś ograniczony tylko do HTML/Javascript. Możesz używać tylko czystego kodu Java, jeśli budujesz lokalnie, we własnym środowisku. – trejder

2

Można to zrobić od kwietnia 2014 roku w PhoneGap Budowanie za pomocą gap:qualifer np

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

Zobacz this i this artykuł o szczegóły.

Powiązane problemy