2010-12-06 20 views
14

Me gustaría crear una aplicación de Android (para una tableta) que solo se muestre en orientación horizontal, p. la aplicación debe ignorar las rotaciones en 90 °, pero admite rotaciones de 180 °.Android: deshabilite las rotaciones en 90 °, pero habilite las rotaciones en 180 °

Al agregar android: screenOrientation = "landscape" en el manifiesto hace que la aplicación ignore todas las rotaciones (incluso las rotaciones de 180 °), es decir, al girar el dispositivo 180 ° muestra la aplicación al revés.

Sin el androide: screenOrientation atribuyen mi aplicación se visualiza "correctamente" en las cuatro posiciones. Gire el dispositivo 180 ° para voltear la UI verticalmente resp. horizontalmente.

cuando la rotación del dispositivo se crean los siguientes mensajes de registro (tal vez esto ayuda?):

[...]: INFO/WindowManager(1290): Setting rotation to 1, animFlags=0 
Rotation is a value between 0 and 3 representing the current orientation. 

Resumido: ¿Es posible habilitar una aplicación para apoyar ambas orientaciones del paisaje?

+0

Lo dudo ... ¿por qué quieres apoyar el modo invertido, pero no otras rotaciones? –

+0

@Mayra: lo más obvio que viene a la mente es una aplicación que no se adapta a retratos y dispositivos que pueden tener botones 'requeridos', puerto USB, etc. en el costado (que se convierte en 'inferior' en una orientación horizontal forzada). – Squonk

+1

@janjonas - Acabo de pasar alrededor de media hora pirateando esto y no puedo hacer que funcione para mí. Android 2.3 diferencia entre las orientaciones de retrato y paisaje normales e 'inversas'; sin embargo, tal vez podría hacer que funcione cuando esté disponible para su tableta. – Squonk

Respuesta

17

La nueva orientación de la pantalla sensorLandscape es aparentemente destinado para este fin.

Por ejemplo, se podría hacer:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); 

Por desgracia, esto sólo está disponible a partir de Android 2.3. Actualmente estoy buscando una forma de lograr esto en Froyo.

+0

Gracias por su respuesta. En mi humilde opinión no hay forma de hacer esto en 2.2 – janjonas

+0

¿Lograste hacer esto en 2.2? – ffleandro

+0

funcionó para mí en una tableta 3.2.1, pero no en un teléfono 4.0.2 (usando SCREEN_ORIENTATION_SENSOR_PORTRAIT) – SteelBytes

Cuestiones relacionadas