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


Cambiar la orientación de la pantalla mediante un botón

Creo que esto es implementable ya que el comportamiento de rotación de la pantalla puede ir hasta el nivel de la aplicación.

    4 Solutions collect form web for “Cambiar la orientación de la pantalla mediante un botón”

    Sí, es implementable!

    ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

    ActivityInfo.SCREEN_ORIENTATION_PORTRAIT

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

    ActivityInfo

    http://developer.android.com/reference/android/content/pm/ActivityInfo.html

    Consulte el enlace:

     Button buttonSetPortrait = (Button)findViewById(R.id.setPortrait); Button buttonSetLandscape = (Button)findViewById(R.id.setLandscape); buttonSetPortrait.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View arg0) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } }); buttonSetLandscape.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View arg0) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } }); 

    http://android-er.blogspot.in/2011/08/set-screen-orientation-programmatically.html

    Sí, puede configurar la orientación de la pantalla mediante programación en cualquier momento que desee utilizando:

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

    Para el modo horizontal y vertical respectivamente. El método setRequestedOrientation () está disponible para la clase Activity , por lo que puede utilizarse dentro de su Activity.

    Y así es como puede obtener la orientación actual de la pantalla y ajustarla adecuadamente dependiendo de su estado actual:

     Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); final int orientation = display.getOrientation(); // OR: orientation = getRequestedOrientation(); // inside an Activity // set the screen orientation on button click Button btn = (Button) findViewById(R.id.yourbutton); btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { switch(orientation) { case Configuration.ORIENTATION_PORTRAIT: setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); break; case Configuration.ORIENTATION_LANDSCAPE: setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); break; } } }); 

    Tomado de aquí: http://techblogon.com/android-screen-orientation-change-rotation-example/

    EDITAR

    Además, puede obtener la orientación de la pantalla utilizando la Configuration :

     Activity.getResources().getConfiguration().orientation 

    Use esto para configurar la orientación de la pantalla:

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

    o

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

    Y no te olvides de añadir esto a tu manifiesto:

     android:configChanges = "orientation" 

    Siempre que sea posible, no utilice SCREEN_ORIENTATION_LANDSCAPE o SCREEN_ORIENTATION_PORTRAIT. En su lugar use:

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); 

    Éstos permiten al usuario orientar el dispositivo hacia la orientación horizontal o bien hacia la orientación vertical, respectivamente. Si alguna vez has tenido que jugar un juego con un cable de carga que se introduce en el estómago, entonces usted sabe exactamente por qué tener ambas orientaciones disponibles es importante para el usuario.

    Nota: Para los teléfonos, al menos varios que he comprobado, sólo permite el "retrato derecho hacia arriba" modo retrato, sin embargo, SENSOR_PORTRAIT funciona correctamente en las tabletas.

    Nota: esta característica se introdujo en el Nivel 9 de la API, por lo que si debe soportar 8 o menos (no es probable en este momento), utilice:

     setRequestedOrientation(Build.VERSION.SDK_INT < 9 ? ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE : ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); setRequestedOrientation(Build.VERSION.SDK_INT < 9 ? ActivityInfo.SCREEN_ORIENTATION_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); 
      FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.