Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo detectar la orientación del dispositivo Android?

¿Es posible simple detectar la orientación actual del dispositivo android, sin programar un oyente y manejar la matriz de posición? En mi aplicación sólo quiero conocer la orientación actual – vertical u horizontal – en este momento. Sin embargo, no quiero escuchar eventos de axiometría u otros eventos.

  • Android: orientación manual de la pantalla sin reiniciar la actividad?
  • Verificar orientación en el teléfono Android
  • Descripción de la orientación del teléfono Android, incluida la brújula
  • El enfoque de EditText es inconsistente en todos los diseños
  • Android, ¿cómo no destruir la actividad cuando giro el dispositivo?
  • ¿Cómo puedo especificar diferentes diseños para orientaciones de retrato y de paisaje?
  • Cómo bloquear la orientación durante el tiempo de ejecución
  • Android - Cómo acercarse al algoritmo de detección de caídas
  • 6 Solutions collect form web for “Cómo detectar la orientación del dispositivo Android?”

    Utilice el método getRotation :

     Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); int rotation = display.getRotation(); 

    De la documentación:

    Devuelve la rotación de la pantalla de su orientación "natural". El valor devuelto puede ser Surface.ROTATION_0 (sin rotación), Surface.ROTATION_90 , Surface.ROTATION_180 o Surface.ROTATION_270 . Por ejemplo, si un dispositivo tiene una pantalla naturalmente alta y el usuario la ha girado de lado para entrar en una orientación horizontal, el valor devuelto aquí puede ser Surface.ROTATION_90 o Surface.ROTATION_270 dependiendo de la dirección en la que se giró. El ángulo es la rotación de los gráficos dibujados en la pantalla, que es la dirección opuesta a la rotación física del dispositivo. Por ejemplo, si el dispositivo se gira 90 grados en sentido contrario a las agujas del reloj, para compensar el renderizado se girará 90 grados en el sentido de las agujas del reloj y por lo tanto el valor devuelto aquí será Surface.ROTATION_90 .

    Tenga en cuenta que getRotation fue introducido desde Android 2.2. Use getOrientation si su objetivo son dispositivos antiguos.

    También puedes usar:

     getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE 

    Hay un buen artículo sobre este tema que es un tener para leer: One Screen Turn Merece otro

    Sólo necesitas conocer la altura y el ancho de tu lienzo … tu superficie … tu monitor … etc.

    Quizás usted puede conseguirlo con:

     if (canvas.getHeight()>canvas.getWidth() ) { //portrait } else { //landscape } 

    Creo que la manera más segura y más fácil es agregar una etiqueta para algún elemento de su actividad en XML. Por ejemplo, establezca la etiqueta del viewpager en "retrato" en el diseño vertical y ajústelo en "paisaje" en el modo horizontal. A continuación, en su cheque oncreate para esa etiqueta como así:

     if(mViewpager.getTag().equals("portrait")) // is in portrait else // is in landscape 

    Esto puede no ser relevante, pero si por casualidad necesitas saber esto porque quieres bloquear el dispositivo en su orientación actual, puedes alternar entre las dos líneas siguientes de código.

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.