studio rotación rotacion reinicie que programacion pantalla orientacion móviles movil manejando girar evitar detectar desarrollo curso como cambio aplicaciones activity android uibutton screen-orientation

rotación - manual de programacion android pdf



Cambiar la orientación de la pantalla mediante programación utilizando un botón (5)

Creo que esto es implementable ya que el comportamiento de rotación de pantalla puede subir al nivel de la aplicació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 establecer la orientación de la pantalla de forma programática en cualquier momento que desee mediante:

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

para el modo paisaje y retrato, respectivamente. El método setRequestedOrientation () está disponible para la clase Activity , por lo que se puede usar dentro de tu Activity.

Y así es como puede obtener la orientación de la pantalla actual y configurarla adecuadamente en función 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 desde aquí: http://techblogon.com/android-screen-orientation-change-rotation-example/

EDITAR

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

Activity.getResources().getConfiguration().orientation


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

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

Estos permiten al usuario orientar el dispositivo a la orientación horizontal o a la orientación vertical, respectivamente. Si alguna vez tuvo que jugar un juego con un cable de carga en su estómago, entonces sabe exactamente por qué es importante para el usuario tener ambas orientaciones disponibles.

Nota: para teléfonos, al menos varios que he comprobado, solo permite el modo vertical "boca arriba", sin embargo, SENSOR_PORTRAIT funciona correctamente en tabletas.

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

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);


Un código de trabajo:

private void changeScreenOrientation() { int orientation = yourActivityName.this.getResources().getConfiguration().orientation; if (orientation == Configuration.ORIENTATION_LANDSCAPE) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); showMediaDescription(); } else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); hideMediaDescription(); } if (Settings.System.getInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) == 1) { Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); } }, 4000); } }

llama a este método en el botón clic


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

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

o

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

y no te olvides de agregar esto a tu manifiesto:

android:configChanges = "orientation"