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.

  • Error al exportar la aplicación después de actualizar a Proguard 4.8
  • ¿Puedo detectar la presencia / ausencia de "notificación LED" en un dispositivo Android?
  • ¿Por qué no se llama a onBackPressed ()?
  • ¿Cómo puedo enviar mensajes SMS en el BACKGROUND usando Android?
  • Ionic v2 API de Google Maps Error de compilación de Android: no se puede acceder a AbstractSafeParcelable options.compassEnabled (controls.getBoolean ("compass"));
  • Desactivar correctamente los anuncios de AdMob
  • Reconocimiento de actividad en Android no funciona
  • Android: onListItemClick en la actividad
  • ¿Cuáles son las implicaciones de portabilidad de usar el NDK?
  • Notificación si Bluetooth está desactivado en la aplicación android
  • Cómo cambiar el color del texto en TextView en volar como en css?
  • Problema de empaquetado de Android: resources.ap_ no existe
  • 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.