¿Cómo puedo obtener la orientación actual de la pantalla?

Sólo quiero establecer algunas banderas cuando mi orientación está en el paisaje de modo que cuando la actividad se recrea en onCreate () puedo alternar entre lo que se carga en el retrato frente al paisaje. Ya tengo un xml de layout-land que está manejando mi diseño.

public void onConfigurationChanged(Configuration _newConfig) { if (_newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { this.loadURLData = false; } if (_newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { this.loadURLData = true; } super.onConfigurationChanged(_newConfig); } 

Over-riding onConfigurationChanged evitará que mi xml de layout-land se cargue en la orientación horizontal.

Sólo quiero obtener la orientación actual de mi dispositivo en onCreate (). ¿Cómo puedo obtener esto?

 Activity.getResources().getConfiguration().orientation 
 int orientation = this.getResources().getConfiguration().orientation; if (orientation == Configuration.ORIENTATION_PORTRAIT) { //code for portrait mode } else { //code for landscape mode } 

Cuando la superclase de this es Activity

En algunos dispositivos void onConfigurationChanged() puede bloquearse. El usuario utilizará este código para obtener la orientación actual de la pantalla.

 public int getScreenOrientation() { Display getOrient = getActivity().getWindowManager().getDefaultDisplay(); int orientation = Configuration.ORIENTATION_UNDEFINED; if(getOrient.getWidth()==getOrient.getHeight()){ orientation = Configuration.ORIENTATION_SQUARE; } else{ if(getOrient.getWidth() < getOrient.getHeight()){ orientation = Configuration.ORIENTATION_PORTRAIT; }else { orientation = Configuration.ORIENTATION_LANDSCAPE; } } return orientation; } 

Y use

 if (orientation==1) // 1 for Configuration.ORIENTATION_PORTRAIT { // 2 for Configuration.ORIENTATION_LANDSCAPE //your code // 0 for Configuration.ORIENTATION_SQUARE } 
 int rotation = getWindowManager().getDefaultDisplay().getRotation(); 

Esto dará toda la orientación como normal y reversa

Y manejarlo como

 int angle = 0; switch (rotation) { case Surface.ROTATION_90: angle = -90; break; case Surface.ROTATION_180: angle = 180; break; case Surface.ROTATION_270: angle = 90; break; default: angle = 0; break; } 
 getActivity().getResources().getConfiguration().orientation 

Este comando devuelve valor int 1 para Portrait y 2 para Landscape

En el caso de que alguien quiera obtener una descripción de orientación significativa (como la que se pasa a onConfigurationChanged(..) con aquellos reverseLandscape , sensorLandscape y así sucesivamente), simplemente use getRequestedOrientation()

Si desea reemplazar ese método onConfigurationChanged y todavía quiere que haga las cosas básicas, considere utilizar super.onConfigyrationChanged () como la primera instrucción en el método overriden.

En su clase de actividad utilice el método siguiente:

  @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks the orientation of the screen if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { setlogo();// Your Method Log.d("Daiya", "ORIENTATION_LANDSCAPE"); } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { setlogoForLandScape();// Your Method Log.d("Daiya", "ORIENTATION_PORTRAIT"); } } 

A continuación, para declarar que su actividad gestiona un cambio de configuración, edite el elemento apropiado en su archivo de manifiesto para incluir el atributo android:configChanges con un valor que represente la configuración que desea manejar. Los valores posibles se enumeran en la documentación del atributo android:configChanges (los valores más utilizados son "orientación" para evitar que se reinicie cuando cambie la orientación de la pantalla y "keyboardHidden" para evitar que se reinicie cuando cambie la disponibilidad del teclado). Puede declarar varios valores de configuración en el atributo separándolos con un pipe | personaje.

 <activity android:name=".MyActivity" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name"> 

¡¡Eso es todo!!

  • Android: La preferencia programática 'permitir reorientación' funciona sólo una vez
  • ¿Por qué `android: screenOrientation =" detrás "` no hay efecto en android 4.1.2?
  • PhoneGap / Android - Bloqueo de la orientación al retrato
  • Rotación inexplicable de la cámara Android en la captura de algunos dispositivos (no en EXIF)
  • "Algo mal aquí, no esperaba que el paquete se reanude" error en android Logcat
  • Habilitar la rotación de la pantalla android
  • Problema con la orientación de la imagen de Android en Motorola Droid
  • El contenido de Webview de Android no debe perderse en el cambio de orientación, pero la GUI debe actualizarse correctamente
  • Android onConfigurationChanged no se llama
  • Viewflipper Receptor no registró error mientras cambio de orientación en 2.1 y 2.2
  • Cómo configurar la orientación de la cámara Android correctamente?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.