¡Presta atención para distinguir la diferencia entre los siguientes tres conceptos! ! ! . Y use estas tres formas para juzgar la forma de las pantallas horizontales y verticales.
Ángulo de rotación de la pantalla del sistema
diversión getSystemRotation(): Int {
val angle = (getSystemService(WINDOW_SERVICE) as WindowManager).defaultDisplay.rotation//El valor del ángulo de rotación de la pantalla del sistema
volver cuando(ángulo){
Surface.ROTATION_90->return 90//pantalla horizontal
Surface.ROTATION_180->return 180//pantalla vertical
Surface.ROTATION_270->return 270//pantalla horizontal
más ->0//pantalla vertical
}
}
Igual que el valor del ángulo obtenido de la siguiente manera. Pero el siguiente método también se puede aplicar en pantallas múltiples.
var mDisplayManager = (DisplayManager) getSystemService(Context. DISPLAY_SERVICE )
mDisplayManager?.getDisplay( DEFAULT_DISPLAY )?. rotación
Evaluación de las pantallas horizontales y verticales en la interfaz de la aplicación (nota: la evaluación de las pantallas horizontales y verticales en el modo multipantalla está relacionada con la visualización de Ver en la interfaz de la interfaz de usuario)
El punto de referencia para las pantallas horizontales y verticales es el cambio de la relación de aspecto de la interfaz de la aplicación: si la relación de aspecto es inferior a 1, es una pantalla vertical, y si la relación de aspecto es superior a 1, es una pantalla apaisada
divertido getConfigureRotaion():Int{
//Configuración.ORIENTATION_PORTRAIT 1 ,Configuración.ORIENTATION_LANDSCAPE 2
return resources.configuration.orientation//1 es una pantalla vertical, 2 es una pantalla horizontal
}
Ángulo de rotación del dispositivo
clase interna MyOrientationEventListener (contexto: Contexto): OrientationEventListener (contexto) {
anula la diversión onOrientationChanged (orientación: Int) {
//El valor de la orientación en la pantalla vertical es el mismo que el valor del ángulo de rotación de la pantalla del sistema. En el modo horizontal, el valor difiere en 180 grados.
// Se llama cuando cambia la orientación del dispositivo. El parámetro de orientación tiene un rango de valores de 0 a 359 en grados.
//Cuando el dispositivo está en una posición natural, la orientación es de 0 grados -> pantalla vertical
//Cuando su lado izquierdo está en la parte superior, la orientación es de 90 grados -> pantalla horizontal
//Cuando está al revés, la orientación es de 180 grados -> pantalla vertical
//Cuando su derecha es la parte superior, 270 grados -> paisaje
// Se devuelve ORIENTATION_UNKNOWN cuando el dispositivo está cerca de un plano y no se puede determinar la orientación. Es decir, cuando el tablero de la mesa se coloca horizontalmente.
}
}