Uso de TableLayout, RelativeLayout y etiqueta.

TableLayout.
Un TableLayout permite distribuir sus elementos hijos de forma tabular, definiendo las filas y columnas necesarias, y la posición de cada componente dentro de la tabla.
La estructura de la tabla se define de forma similar a como se hace en HTML, es decir, indicando las filas que compondrán la tabla (objetos TableRow), y dentro de cada fila las columnas necesarias, con la salvedad de que no existe ningún objeto especial para definir una columna (algo así como un TableColumn) sino que directamente insertaremos los controles necesarios dentro del TableRow y cada componente insertado (que puede ser un control sencillo o incluso otro ViewGroup) corresponderá a una columna de la tabla. De esta forma, el número final de filas de la tabla se corresponderá con el número de elementos TableRow insertados, y el número total de columnas quedará determinado por el número de componentes de la fila que más componentes contenga.
TableRow.
Un diseño que organiza sus hijos horizontalmente. Un TableRow siempre debe ser utilizado como un hijo de una TableLayout. Si el padre de un TableRow no es un TableLayout, la TableRow se comportará como horizontal LinearLayout.
Los hijos de un TableRow no necesitan especificar el layout_widthlayout_height atributos en el archivo XML. TableRow siempre hace cumplir esos valores a ser, respectivamente, MATCH_PARENTWRAP_CONTENT.
Existen una serie de propiedades que nos ayudarán a modificar este comportamiento:
Android:layout_weight.
Define la importancia que tiene un view dentro del linear layout. A mayor importancia, más espacio podrá ocupar.

La anterior ilustración muestra tres views con pesos de 1, 2 y 3 respectivamente. Es evidente que la magnitud de sus alturas corresponde a su preponderancia. Matemáticamente, el espacio disponible total sería la suma de las alturas (6), por lo que 3 representa el 50%, 2 el 33,33% y 1 el 16,66%.
Aunque esto podemos deducirlo por compresión, es posible definir la suma total del espacio con el atributo android:weightSum. Dependiendo de este valor, los weights serán ajustados.
android:weightSum="6"
Para distribuir todos los elementos sobre el espacio total del layout, puedes usar el atributo height con valor cero.
android:layout_height="0dp"
android:layout_weight="3"
Si no lo haces, el relleno del espacio se definirá por las alturas que tú hayas definido, lo que tal vez no complete el espacio total.
Android:shrinkColumns.
Permite marcar una o más columnas como encogibles, de forma que su anchura se pueda reducir para adaptarse al tamaño del contenedor del TableLayout.
Los parámetros tanto del atributo como del método son iguales a los de la propiedad anterior, pero aquí se añade también el valor "*", que permite marcar todas las columnas del TableLayout. Además, también disponemos del método setShrinkAllColumns, que permite marcar todas las columnas de la tabla como encogibles con una sola llamada.
Android:stretchColumns.
Esta propiedad viene a ser la opuesta de la anterior, dado que permite que una columna se expanda aumentando su anchura hasta que todo el contenido del TableLayout ocupe la totalidad de la anchura de su contenedor.
Los parámetros que toma son iguales que los de las propiedades anteriores, incluyendo el valor especial "*", para expandir todas las columnas. Además, aquí también disponemos de un método, setStretchAllColumns, que también permite marcar todas las columnas como expandibles de una vez.
Android:layout_span.
Permite que una vista ocupe más de una columna. Tiene que tener un valor numérico igual o superior a "1". El valor "1" es el predeterminado.
En la siguiente captura podemos verlo en acción. En este caso hemos hecho que la primera vista de la fila 2 ocupe dos columnas y que la segunda vista de la fila 3 ocupe tres columnas, usando los valores "2" y "3", respectivamente:
0036.09 - Vistas que ocupan más de una columna
Como se puede observar, aquí también se aumenta el número de columnas del TableLayout si es necesario.
Android:padding.
Es una manera de empujar el contenido fuera de límite interior de la vista.Cuando especificamos el relleno de una vista, decimos el contenido para mantener esta cantidad de distancia de su límite interior (izquierda, derecha, arriba o abajo). Al igual que el margen, el relleno es también de 5 tipos.
  1. padding- mantener a distancia a todos los bordes interiores
  2. paddingLeft - mantener la distancia desde el límite interior izquierdo
  3. paddingRight - mantener la distancia desde el límite interior derecha
  4. paddingTop - mantener la distancia desde el límite interior superior
  5. paddingBottom - mantener la distancia desde el límite interior inferior
Android:scaleType.
ScaleType, opciones se utilizan para la ampliación de los límites de una imagen a los límites de la vista de la imagen. Propiedades de configuración ScaleType para ImageView en Android son CENTER, CENTER_CROP, CENTER_INSIDE, FIT_CENTER, FIT_END, FIT_START, FIT_XY y MATRIX.

 Android:textStyle.
Proporciona clases que se utilizan para ver o cambiar el estilo de un fragmento de texto en un objeto View. Las clases con un estándar subclase se pasan a SpannableString.setSpan()SpannableStringBuilder.setSpan()añadir un nuevo tramo de estilo a una cadena en un objeto View.

Android:textSize. 

El comando android:textSize se encarga de otorgar un tamaño determinado al texto del TextView donde se escriba. Se mide en sp y puede tener cualquier valor numérico.
Debe declararse dentro del objeto al que se le quiere otorgar el tamaño del texto. La forma en que se declara es: android:textSize=0sp, donde 0 puede ser remplazado por cualquier número.

Android:textColor. 
La declaración debe de darse dentro del TexView al que se le cambiara el color de texto. Se declara en la forma: android:textColor= y entre comillas el color en formato hexagecimal  # FF FF FF     esta esta en orden de RGB  que son las combinacion de  los colores de rojo verde y azul .
también se pueden agregar colores alpha que viene siendo la transparencia y en código quedaría lo siguiente #26FFFFFF la transparencia es de 26 a dos dígitos cada uno
android:textColor:”# transparencia-rojo-verde-azul
Include layout. 
Al crear diseños complejos, usted puede encontrarse la adición de una gran cantidad de ViewGroup de y Vistas. Pero, haciendo que su más alto árbol de vista de jerarquía también dará lugar a la lentitud en la aplicación y aumenta la complejidad. La creación de diseños optimizados es fundamental para construir una aplicación que funciona rápido y es sensible al usuario.
Utilizamos  la <include />etiqueta en su XML para evitar la duplicación de código en diferentes diseños. 

Comentarios