En los siguientes tutoriales van a aprender acerca de hacer layouts para mútiples pantallas. Son 2 partes cortas, el primero es de 5 minutos, mientras que el segundo es de 10, pero no se dejen intimidar hay harta explicación de mi parte (ojala no se aburran de escucharme). El primer ejercicio que se hace es para la orientación, ya sea portrait o landscape (vertical u horizontal respectivamente). Y en el segundo vamos a ver el ejercicio diferenciando tablets de teléfonos.
No quiero arruinarles la sorpresa pero todo consiste en copiar y pegar !En serio! Funciona bien parecido a como funcionan las imágenes que se ponen en distintas carpetas.
Así que partamos por lo más básico. Las Activities usan layouts (por norma general), esos layouts están hecho en xml. Lo que vamos a hacer es que para un tamaño de pantalla se tome un layout y para otros otro layout. Si seguimos las buenas prácticas de diseño de interfaces de Android, vamos por norma general utillizar, match_parent
o wrap_content
, y dentro de los Linearlayout
podemos usar el weight para darle proporción. Pero eso lo que hace es escalar los layout, pero no asegura que la experiencia del usuario sea la adecuada para el tamaño de su dispositivo. Ya sea porque el dispositivo podría tener más información en pantalla o porque debería de la información estar distribuida de otra forma.
Lo que se hace para solucionar esto es proveer distintos layouts. Estos recursos alternativos tienen que tener el mismo nombre y se ponen en carpetas distintas, muy parecido a como se trabaja con imágenes. La diferencia es que acá las carpetas, son carpetas de layout y llevan otros sufijos. Por ejemplo, para landscape se utiliza -land. Entonces nuestra MainActivity.java tiene un layout que se llama activity_main
, ese layout lo copiamos y pegamos, en una carpeta que se llama layout-land.
Ahora lo que les falta es programarlo en Java, y es ahí donde entra la astucia de cada uno, para generar layouts que no sean disruptivos con las funcionalidades.