Supongamos que tenemos la siguiente pantalla
Pero cuando la rotamos nos pasa lo siguiente
Hay dos soluciones
- Seguir el tutorial Rotar pantalla para re-organizar los elementos
- Bloquear la pantalla para que no rote, donde la explicación es la siguiente
Este bloqueo de pantalla lo podemos hacer desde el XML o desde JAVA.
Utilicen ustedes la que le sea más cómodo
Desde el XML
AndroidManifest.xml
agregamos
android:screenOrientation=["landscape" | "portrait" ]
Landscape : orientación horizontal
Portrait: orientación vertical
Por ejemplo esto quedaría así en el AndroidManifest.xml
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.miapp.miusuario.MainActivity"
android:screenOrientation="portrait"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
http://developer.android.com/intl/es/guide/topics/manifest/activity-element.html
Desde JAVA
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Por ejemplo así quedaría nuestro archivo de Java
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//CÓDIGO //CÓDIGO
}
}
En este ejemplo utilicé el MainActivity, pero podes ponérselo a todas las clases por igualNota: Si utilizas tu emulador de Android, con el boton "9" de tu teclado número podes rotar la pantalla.
Saludos. Una duda como se ofusca el codigo al crear apk con android studio, tengo entendido que se hace con PROGUARD, pero no se los pasos a seguir. gracias si pudieras responder
ResponderEliminarsaludos tengo una duda muy grande resulta que cree una app "calculadora " en un nexus de 4,7 pulgadas se ve perfecta en el mismo y en un sony z3 y z2 pero lo probe en un x8 x10 lgp350 y se pierden los botones o bien la mitad mi duda es ¿como le hago para que mi aplicacion se ajuste a multiples pantallas? espero tu ayuda te lo agradeceria mucho
ResponderEliminarmira este tuto
Eliminarhttp://cursoandroidstudio.blogspot.com.ar/2015/01/tablets.html
Esta buena el código. Gracias
ResponderEliminarGracias sigue así
ResponderEliminargracias capo
EliminarExcelente aporte amigo.... me sirvio muchisimo
ResponderEliminardale, buenísimo
EliminarGracias viejo, lo necesitaba
ResponderEliminaruna pregunta ¿como puedo declara de forma global? osea para no repetir el codigo en todas las actividades o clases java.
desde el AndroidManifest.xml, tenes que probar por ahí
EliminarGracias todo este contenido es unico y claro sirve mucho
EliminarMuy bueno amigo, ahora tengo una duda. Ya que cree una pequeña aplicación que ejecuto en modo horizontal, pero al querer rotarlo al otro lado horizontal la pantalla no se gira. ¿Como podría solucionar eso?
ResponderEliminarDe antemano gracias.
Muchas gracias :D
ResponderEliminartus tutoriales son muí buenos; mira tengo una pregunta tienes algún tutorial que me enseñe que codigo utilizar para que no se detenga la aplicacion cuando se bloquea la pantalla del móvil ...... pues cree un reproductor de musica pero cada que se bloquea la pantalla se detiene ... gracias
ResponderEliminarHola alguien me puede ayudar pasa que tengo una aplicacion que necesito que en los tablets se active la posicion horizontal y vertical y en los celulares que se active una sola orientacion ya sea orizontal o vertical...alguna idea de como redolver esto..
ResponderEliminarpor favor tengo una consulta si primero quisiera setear a landscape y luego bloquear para que se ejecute así, es posible?
ResponderEliminarExcelente, me funcionó al 100%.
ResponderEliminargracias amigooo, me funciono por medio de java...
ResponderEliminarhola me gustaría saber como puedo hacer para poder bloquear la pantalla y volver a desbloquearla, gracias
ResponderEliminar¡Tus artículos son geniales! Bastante informativos y explicas todo con detalle.
ResponderEliminarMientras más mejoras veo en Android menos ganas tengo de usar otro sistema operativo o smartphone.
buenas tardes, se puede entrar en una condición la orientación? osea dentro del if que evalué, si esta en vertical, me muestre unas cosas y si esta en horizontal poner otras cosas pero mas amplias
ResponderEliminarTenés que crear una carpeta que se llame layout-land dentro del directorio res y ahí creá un layout con el mismo nombre que el layout que querés versionar en landscape y mostrás los elementos que querés. Para crear la carpeta tenés que mostrar la vista de proyecto, no la vista Android.
EliminarVale muchas gracias por el aporte
ResponderEliminarPortrait ya no corre en 3.6... Actualicen la info
ResponderEliminarMuchas gracias, me sirvió
ResponderEliminarme sirvio gracias
ResponderEliminar