Todos los componenetes de la interfaz de usuario de Android descienden de la clase View. Dichos objetos están organizados en forma de árbol y pueden contener nuevos objetos View, permitiendo crear interfaces muy completas.



Índice

Los objetos View se pueden definir de dos maneras:

Para dibujar la interfaz, el sistema necesita que le pasemos el objeto View raiz, para ir descendiendo por cada uno de sus nodos y presentar al usuario toda la interfaz. El método encargado de esto es Activity.setContentView().

Android se encarga de dibujar los elementos llamando primero al método draw() de cada vista, podríamos decir que cada vista se dibuja a sí misma. El proceso de dibujo se hace en dos veces. Inicialmente se llama al método measure(int, int), que define el tamaño de cada objeto View, posteriormente se llama al método layout(int, int, int, int), que posiciona el objeto dentro de la vista.

Para que Android sepa dibujar correctamente los objetos, tenemos que pasarle algunos datos, como son la altura y anchura. Para eso nos servimos de la clase LayoutParams, que pude tomar los siguientes valores:

También nos podemos servir de la clase View.MeasureSpec, para especificar el tamaño y cómo deben ser posicionadas.

Un atributo imprescindible es el id(de tipo entero). Que sirve para identificar únicamente a un objeto View. Cuando lo declaramos mediante xml podemos referenciarlo a través de la clase de recursos R, usando una @.

Los objetos View pueden tener otros muchos atributos, como padding, colores, imágenes, fondos, márgentes etc

Context

Si ya has programado algo en Android, o has visto alguno de los ejemplos, probablemente hayas visto que muchos métodos referidos a la vista piden como parámetro un objeto de tipo context.

Context es una interfaz para la información global de la aplicación. A través de él podemos acceder a recursos, clases y operaciones, como lanzar actividades, manejar intents etc.

Podemos acceder al contexto de diferentes formas en función de donde nos encontremos:

Siguiente Tema: Programación Android: Interfaz gráfica - Layouts