2012-03-07 13 views
5

Agregué una pantalla de inicio a mi aplicación de panel de teléfono agregando el "super.setIntegerProperty (" splashscreen ", R.drawable.splash);" línea antes de la línea super.loadURL ... en DefaultActivity.Force Phonegap (Android) orientación de la pantalla de presentación

¿Hay alguna manera de bloquear solo la orientación de la pantalla de bienvenida al retrato sin bloquear toda la aplicación?

Respuesta

1

Si está utilizando una versión reciente de PhoneGap (DroidGap) o Apache Cordova puede forzar orientación de la pantalla a horizontal cambiando screenOrientation en el Android. archivo xml La "actividad de instancias" resultante DroidGap debería ser algo como esto:

 <activity 
     android:name="org.apache.cordova.DroidGap" 
     android:label="@string/app_name" 
     android:configChanges="orientation|keyboardHidden" 
     android:screenOrientation="landscape"   
     > 
     <intent-filter> 
     </intent-filter> 
    </activity> 
+6

¿No bloquea esto la orientación de toda la aplicación al paisaje? La pregunta original es sobre bloquear la orientación de la pantalla de bienvenida a vertical sin bloquear la orientación de toda la aplicación. –

0

escribir la siguiente dentro del método onCreate de la actividad splashscreen:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

+0

Gracias, pero el problema es que con Phonegap, la pantalla de bienvenida no es una actividad separada Si forzo la orientación a esa actividad, fuerzo toda la aplicación. – user992804

0

Añadir esta línea en su AndroidManifest.xml:

4

Después de muchas búsquedas que he encontrado que la forma correcta de abordar orientación de la pantalla de bienvenida es para administrar dos imágenes usar este código en su MainActivity

if (getResources().getConfiguration().orientation == 2) { 
     super.setIntegerProperty("splashscreen", R.drawable.splashlandscape); 
     Log.d("Orientation", "Landscape"); 
    } 
    else { 
     super.setIntegerProperty("splashscreen", R.drawable.splashportrait); 
     Log.d("Orientation", "Portrait"); 
    } 
+0

Esto funciona. Gracias !!! – Rajaraman

5

La siguiente solución funciona para Cordova 3+ en Android e iOS. Bloquea la orientación para la pantalla de bienvenida solamente, luego la desbloquea una vez que se ejecuta la aplicación.

fijar la orientación en config.xml:

<preference name="orientation" value="portrait" /> 

continuación, utilizar este screen orientation plugin para desbloquearlo una vez que la aplicación ha inicializado:

document.addEventListener("deviceready", function(){ 
    screen.unlockOrientation(); 
}, false); 
+0

Gracias! ¡Funciona de maravilla! – Lotus

Cuestiones relacionadas