Advertisement
  1. Code
  2. Android SDK

Android UI Retos Fundamentales: ComposicionesRelativas

Scroll to top
Read Time: 6 min
This post is part of a series called Android User Interface Design.
Android User Interface Design: Relative Layouts
Android User Interface Design: Table Layouts

Spanish (Español) translation by Rodney Martinez (you can also view the original English article)

Ha leído acerca de como los relative layouts trabajan en Android. Ahora pruebe sus nuevas habilidades con estos desafíos progresivos que conllevan controles relative layouts y consolide su conocimiento del lenguaje de programación Java y sobre el diseño y desarrollo de la interfaz de usuario Android.

Configuración

Para prepararse para este desafío, seguramente querrá empezar con una aplicación Android básica. Sencillamente, crear un aplicación Android dentro de Eclipse y editar su Activity por defecto, específicamente el método onCreate() para probar el código que usted creo para éste desafío.

Si lo que le pedimos es demasiado desafiante, entonces le recomendaremos dar un paso hacia atrás. Empezar con algunos de los tutoriales Android, tales como Introducción al Desarrollo en Android o Comenzando Android: Empezando con Fortune Crunch. Una vez que haya dominado la configuración de un proyecto Android, regrese y pruebe estos ejercicios progresivos.

Un Desafío Progresivo

Este es un desafío progresivo. Integra numerosas habilidades que los programadores principiantes en Android deben dominar para diseñar y desarrollar aplicaciones. Siguiendo cada uno de los pasos abajo, que aumentan en dificulta, usted consolidará su conocimiento de relative layouts y sobre el diseño de la interfaz de usuario en Android en general.

Paso 0: Prepara sus Recursos

Ahora que ha creado un proyecto Android de forma apropiada, va a necesitar crear algunos recursos para usarlos dentro de su interfaz de usuario.

Crear:

  • Haga siete recursos string, uno para cada color en el espectro (“Red”, “Orange”, “Yellow”, “Green”, “Blue”, “Indigo”, “Violet”).
  • Haga siete recursos de color, uno para cada color en el espectro (Rojo=>#f00, Naranja=>#ffa500, Amarillo=>#ffff00, Verde=>#0f0, Azul=>#00f, Indigo=>#4b0082, Violeta=>#ee82ee).
  • Haga dos recursos más de color para los colores de los textos (Negro=>#000, Blanco=>#fff).

¿Confundido por crear string o recursos de colores? Entonces revise este tutorial sobre el formato string.

Desafío 1: Defina su Layout Resource

Comience creando un archivo nuevo layout resource llamado relativerainbow.xml. Dentro de este archivo XML, añada un control relative layout que llene toda la pantalla, ajuste la gravedad de sus controles al centro. Luego, añada siete controles TextView como controles child dentro del relative layout: uno para cada color en el espectro. Configure el texto de cada control TextView para el string de color adecuado en el espectro y el color de fondo para el valor de color apropiado. Además, ajuste cada atributo de control como layout_width a wrap_content, su atributo layout_height a wrap_content y su padding a algo razonable como 8dp.

Si ha completado este paso correctamente, entonces sus layou debería de lucir igual que este:

Android Relative Layouts Challenge Figure 1Android Relative Layouts Challenge Figure 1Android Relative Layouts Challenge Figure 1

Observe que todos los controles están aplicados arriba uno del otro, con el último control que fue añadido en la parte "superior".

Desafío 2: Apilando controles Child

Queremos que cada control TextView sea visible y que cada color sea mostrado en el orden correcto. Podríamos haber usao un layout linear para organizar nuestros controles, pero queremos más flexibilidad aquí.

Comience añadiendo una regla relative layout para cada control TextView apropiado tal que los controles sean presentados uno después de otros de forma vertical en un orden de pila (Rojo, Naranja, Amarillo, Verde, Azul, Indigo, Violeta).

Ahora sus layouts deberían tener la siguiente apariencia:

Android Relative Layouts Challenge Figure 2Android Relative Layouts Challenge Figure 2Android Relative Layouts Challenge Figure 2

PISTA: Verifique el atributo android:layout_below.

Desafío 3: Intercalando controles Child

Hasta ahora, podríamos haber usado sencillamente un layou linear orientado verticalmente para mostrar los controles. En este paso, avanzaremos más allá del orden de pila de los controles TextView y comenzaremos ajustándolos a la izquierda o derecha de los otros controles para alcanzar el diseño resultante:

Android Relative Layouts Challenge Figure 3Android Relative Layouts Challenge Figure 3Android Relative Layouts Challenge Figure 3

PISTA: Para alcanzar este efecto, usted necesita usar dos reglas diferentes para los relative layout, asociados con los atributos: android:layout_toLeftOf y android:layout_toRightOf.

Sólo para probar, cambie al modo panorámico y compruebe que el mismo layout luce igual que:

Android Relative Layouts Challenge Figure 3BAndroid Relative Layouts Challenge Figure 3BAndroid Relative Layouts Challenge Figure 3B

¡Siéntase con toda la libertad de publicar sus soluciones XML en la sección de comentarios!

Desafío Extra: Recrear el Layout por medio de programación en Java.

Si ha encontrado que el desafío anterior fue razonablemente sencillo, entonces considere seguir este desafío extra: recrear su layout resource por medio de programación en Java, al contrario que en un layout XML resource.

Necesitará comemtar la llamada setContentView() en su método onCreate() del Activity y desarrollar su RelativeLayout, como se discutió en Diseño de Interfaz de Usuario Android: Relative Layouts.

Estas son algunas pistas que puede implementar en el relative layout rainbow, por medio de programación:

  • Comience construyendo cada uno de los controles TextView: De a cada control un identificador único usando el método setId().
  • Para configurar los parámetros del layout para cada control TextView
  • Use el método addRule() del objeto RelativeLayout.LayoutParams para configurar apropiadamente las reglas para cada control TextView.
  • Use el método setText() de la clase TextView para cargar y mostrar el recurso string apropiado.
  • Use el método setTextSize() de la clase TextView para configurar el tamaño de la fuente del texto. Puede usar el método getResources().getDimension() para cargar el dimensión resource.
  • Use el método setTextColor() de la clase TextView para configurar el color de fuente del texto. Usted puede usar el método getResources().getColor() para cargar el color resource.
  • Use el método setBackground() de la clase TextView para configurar el color de fondo del control. Usted puede usar el método getResources().getColor() para cargar el color resource.
  • Use el método setGravity() de la clase TextView para configurar la alineación. La clase Gravity contiene definiciones para diferentes tipos de gravedad.
  • Después, construya un control RelativeLayout.
  • Use el método setGravity() para configurar la alineación de todos los controles child del layout. La clase Gravity contiene definiciones para diferentes tipos de gravedad.
  • No olvide construir un objeto LayoutParams para configurar el atributo altura y anchura del mismo relative layout.
  • Añada cada control TextView para su objeto RelativeLayout usando el método addView().
  • Finalmente, use el método setContentView() para mostrar el RelativeLayout que usted acaba de configurar.

Encontrará la solución Java en la descarga proporcionada con este tutorial.

En conclusión

Los diseñadores de la interfaz de usuario Android usen relative layouts todo el tiempo para mostrar controles en relación unos a otros. Los controles child pueden ser mostrados uno cerca de otros (arriba, abajo, a la izquierda o la derecha) o relativos al parent layout. Las reglas layout son utilizadas para describir donde cada control child debería ser colocado en la pantalla.

¡Mucha suerte!

Sobre los Autores

Desarrolladores de Celulares; Lauren Darcey y Shane Conder son coautores de varios libros sobre el desarrollo en Android: un libro de programación a fondo titulado: Desarrollo de Aplicaciones Inalámbricas de Android y Sams Aprenda usted mismo a Desarrollar Aplicaciones para Android en 24 horas. Cuando no escriben, ellos pasan su tiempo desarrollando programas para celulares en sus empresas y proporcionando servicios de consultoría. Pueden ser localizado a través de correo electrónico: androidwirelessdev+mt@gmail.com o por medio de su blog en androidbook.blogspot.com y en Twitter @androidwireless.

¿Necesita más ayuda escribiendo aplicaciones de Android? ¡Revise nuestros últimos libros y recursos!

Buy Android Wireless Application Development, 2nd Edition Buy Sam's Teach Yourself Android Application Development in 24 Hours Mamlambo code at Code Canyon

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.