Aquí un pseudo código para detectar la rotación de pantalla evento, y decidir conservar o cambios en la orientación de la pantalla.
public boolean onOrientationChanges(orientation) {
if(orientation == landscape)
if(settings.get("lock_orientation"))
return false; //Retain portrait mode
else
return true; //change to landscape mode
return true;
}
¿Cómo puedo hacer cosas similares en Android?
EDICIÓN:
De hecho estoy buscando respuesta en Donde para manejar los cambios de orientación de la. No quiero arreglar la orientación mediante la adición de screenOrientation=»retrato».
Necesito algo, similar a onConfigurationChanges(), donde lo puedo controlar la orientación, pero no me necesitan manualmente volver a dibujar la vista.
- Usted no necesita interceptar la petición y, a continuación, permitir o negar. Puede bloquear o liberar la orientación de antemano. También hay más opciones con este método, tales como permitir una rotación de 180 grados cuando está bloqueado. Por favor, lea mi respuesta a continuación, en lugar de la opción seleccionada.
Usted necesita un
Display
instancia en primer lugar:A continuación, la orientación puede ser llamado como este:
De verificación de orientación como de su forma y el uso de esta para cambio de orientación:
Espero te sirva de ayuda.
Actualización:
Bueno, digamos que tienes un
oAllow
var que esBoolean
y el valor predeterminado esFalse
.Puedes añadir más opciones.
No me trate de esta muestra, pero al menos explica algunas pistas sobre cómo resolver. Dime si tienes cualquier error.
ACTUALIZACIÓN
getOrientation()
ya está obsoleto ver aquí. En Lugar De UtilizargetRotation()
. Para comprobar si el dispositivo está en el modo de paisaje se puede hacer algo como esto:onConfigurationChanged
de acuerdo a estas respuestas: stackoverflow.com/a/1512263/1033899 y stackoverflow.com/a/5200226/1033899Intente ejecutar
De su contexto objeto de averiguar cuál es la orientación de la pantalla en tiempo de ejecución, los valores posibles son documentados aquí
Con el fin de atrapar el cambio de la orientación de evento que usted puede encontrar la respuesta en el Android Dev Guía: El manejo del Cambio en la Configuración usted Mismo
De la guía :
…
No es necesario interceptar el evento y, a continuación, reemplazar. Sólo tiene que utilizar:
Puntos a tener en cuenta aquí que, si en Jellybean y por encima de esto va a permitir una rotación de 180 grados cuando está bloqueado. También cuando se desbloquee este sólo permite la rotación si el maestro del usuario configuración es para permitir la rotación. Usted puede prohibir 180 grados de rotación y anular la configuración maestra y permitir la rotación, y mucho más, así que echa un vistazo a las opciones en ActivityInfo
Además, si usted tiene pre-establecido que no hay rotación, entonces su actividad no será destruido, y, a continuación, reiniciar, sólo para usted, para establecer la orientación de la espalda que causará que la actividad se reinicia; Así lo desea por adelantado puede ser mucho más eficiente.
Pre Jellybean uso
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
— no hay rotación de 180 grados con esto.Comprobar tu android orientación de la pantalla en tiempo de ejecución:
Otra solución para determinar la orientación de la pantalla: