Propiedades de Control de Android

autores: Bryan Gonzáles Y Bryan Rodríguez

## **Atributos Declarados**

***Ancho del diseño(Layout\_width)***

Es una propiedad que se utiliza para definir el ancho de un elemento de la interfaz de usuario, como un widget (por ejemplo, un botón o un campo de texto) o un contenedor (como un LinealLayout o un RelativeLayout). Esta propiedad se utiliza para controlar cómo se distribuyen y colocan los elementos en la pantalla. Es esencial para diseñar la interfaz de usuario de una aplicación Android de manera efectiva. Controla cómo se colocan y redimensionan los elementos en la pantalla, lo que permite crear diseños flexibles y adaptables a diferentes tamaños de pantalla y dispositivos.

***Altura del diseño(Layout\_height)***

Es una propiedad en Android que se utiliza para definir la altura de un elemento de la interfaz de usuario, como un widget (por ejemplo, un botón o un campo de texto) o un contenedor (como un LinealLayout o un RelativeLayout) al diseñar la interfaz de usuario utilizando XML. Es esencial para controlar cómo se distribuyen y colocan los elementos en la pantalla en la dirección vertical al diseñar la interfaz de usuario de una aplicación Android.

***Contexto(Context)***

Se hace referencia a un tipo de atributo especial que se puede utilizar en las definiciones XML para referirse al contexto en el que se está utilizando un recurso o valor.

## **Diseño(Layout)**

***Visibilidad(Visibility)***

Se utiliza para controlar la visibilidad de un elemento en la interfaz de usuario de una aplicación Android. Esta propiedad determina si un elemento (como un widget, una vista o un diseño) es visible o no en la pantalla en un momento dado. Se puede establecer de la siguientes formas: *visible*, *invisible* y *gone*.

## **Transformaciones (Transforms)**

##### ***Rotación(rotation)***

Este control permite rotar un control en los 3 ejes (x, y, z), sé puede hacer mediante los sliders o mediante un valor introducido manualmente en los textbox llamados rotation.

##### ***Escala(Scale)***

Este propiedad esta diseñado para ajustar la escala/tamaño del control, sé puede trabajar ajustando el tamaño de los ejes x y y de manera individual.

##### ***Traslación(Traslation)***

Permite mover el origen del control seleccionado, es decir permite cambiar la ubicación del control en pantalla mediante valores en sus distintos ejes (x, y, z).

##### ***Alpha***

Permite ajustar el grado de opacidad o transparencia del control.

## **Atributos Comunes(Common Attributes)**

Estas propiedades suelen estar relacionados a la estética del control aunque hay excepciones dentro de ellos como lo es onClick, los más relevantes de estos atributos son:

##### ***Estilo(Style)***

Esta propiedad permite seleccionar diversos estilos para el control entre los cuales estan multiples variantes de material Design, Holo, Modo Claro y el estilo predeterminado del dispositivo.

##### ***StateListAnimator***

permite definir una cantidad de animadores que se ejecutarán en la vista adjunta según el estado de diseño de la vista. Se puede definir en un archivo XML con el elemento <selector>. Cada State Animator se define en un elemento <item> anidado.

##### ***Al clicar(OnClick)***

Esta propiedad se usa para definir un evento al hacer clic en un botón, para usarlo se debe agrega el atributo `android:onClick` al elemento `<Button>` en el diseño XML. El valor de este atributo debe ser el nombre del método al que deseas llamar en respuesta a un evento de clic.

##### ***Elevación(Elevation)***

Es Medida desde el frente de una superficie(control) hasta el frente de otra, la elevación de un elemento indica la distancia entre las superficies y la profundidad de su sombra.

##### ***Recuadro(inset)***

Se utiliza para insertar inserta otro Drawable a una distancia o fracción especificada de los límites del contenido. Esto se utiliza cuando una Vista necesita un fondo que sea más pequeño que los límites reales de la Vista, ese control tiene 4 variantes, que se refieren a izquierda, derecha, arriba y abajo, dependiendo del contenido o diseño de la aplicación se usaran unos u otros.

##### ***Fondo(background, backgroundtint)***

Sé utiliza para establecer el fondo del control seleccionado, dentro de esta propiedad sé despliega un selector de color y a la vez una paleta con distintos estilos ya predefinidos; **background tint** aplica un tinte(color)encima del color del fondo.

##### ***Icono(icon, iconTint, IconPadding)***

**Icon** permite insertar una imagen estilo icono dentro del control, iconPadding hace referencia al relleno que tendrá este icono dentro el control, al igual que anteriores permite añadir un tinte, en este caso **iconTint.**

#### Propiedades de Texto dentro de Atributos comunes

Estas propiedades están al final de **Common Attributes** y están directamente relacionadas con el texto existente dentro del control por lo que sí el control no tiene texto no estarían activas o su cambio no sería visualizado.

1. Text: Se refiere al texto predefinido dentro del control
2. ContentDescription: Describe el contenido dentro del control
3. TextApparence: aquí se encuentra el típico formateado de texto que existe dentro de los editores de texto:
	* **fontFamily** que se refiere al tipo de fuente o una familia de fuentes,
	* **typeface** permite elegir el tipo de cara para las fuentes entre los cuales están: normal, sans, serif y monoespaciada; **textSize** ajusta el tamaño de la fuente,
	* **lineSpacingExtra** indica el espaciado,
	* **textStyle** se ultiza denotar el texto en negrita, cursiva o todo en mayusculas,
	* **textAlignment** permite elegir una alineación para el texto
	* **alpha** permite controlar el grado de opacidad.