La creación de una interfaz en Android puede
realizarse de dos formas:
·
Creación estática: se realiza en XML.
·
Creación dinámica: se realiza en Java.
Ambos
métodos se pueden combinar para crear interfaces más ricas.
Una interfaz se compone de:
·
Uno o varios archivos
XML: representan la parte estática de una
interfaz. Está formada por los distintos elementos (Botón, Texto, Campo de
edición, etc.).
·
Un archivo JAVA
(Actividad): representa la parte dinámica de una
interfaz, las interacciones y tratamientos que hay que realizar, etc.
La clase que representa la base de todos los elementos
de una interfaz en Android es la clase View.
Todos
los elementos básicos de una vista (botón, campo de texto...) heredan de esta
clase.
La modificación de una vista se puede realizar de dos
formas:
·
Actualizando el código XML de la interfaz
(pestaña correspondiente al nombre del archivo).
·
Actualizando la vista mediante el editor
de interfaces (pestaña GraphicalLayout).
1. Declarar identificadores
Un identificador se corresponde con un nombre único
asignado a un elemento de una interfaz. Gracias a este identificador, puede
implementar las interacciones y los tratamientos para cada elemento de la
interfaz.
Para asociar un identificador a un elemento de una
interfaz, hay que utilizar el siguiente atributo:
android:id="@+id/nombre_identificador"
La declaración de un identificador se compone de
varios elementos:
·
android:id: nombre del atributo.
·
@+: indica la declaración de un nuevo identificador.
·
id: corresponde a la categoría del identificador (en
general, puede usar id, pero no es obligatorio).
·
nombre_identificador: corresponde al identificador de un elemento.
La sintaxis siguiente permite acceder al identificador
de un elemento desde un archivo Java:
R.id.nombre_identificador
o desde un archivo XML:
@id/nombre_identificador
2. Combinar con actividades
Una vez la parte estática de una interfaz se ha
declarado, hay que crear una clase Java que represente su actividad.
Cada
vez que se cree una nueva interfaz, ésta deberá declararse en el manifiesto de
la aplicación.
Esta clase debe:
·
Heredar de la clase Activity.
·
Sobrecargar al menos el método onCreate.
·
Enlazar la actividad con la interfaz
mediante el método setContentView.
Para crear una nueva actividad, haga
clic con el botón derecho del ratón en el proyecto y seleccione la opción New
- Other - Android Activity.
Por ejemplo, tomemos una interfaz creada en el
archivo home.xml. Para poder asociarla a una actividad,
el método onCreate debe contener como mínimo el
siguiente código:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
}
Puede
observar el uso del archivo R.java para obtener el layout deseado.
No olvides declarar su actividad en
el archivo de manifiesto de su aplicación. La declaración de nuevos componentes
(actividad, servicio...) se realiza entre las etiquetas <activity>.
<activity
android:name="ruta.package.MyNewActivity"
android:label="@string/activity_title">
Puede especificarle propiedades o comportamientos
mediante filtros de intención. Los filtros de intención se dividen en varias
categorías:
·
Acciones (etiqueta
action): especifican acciones (comportamientos)
de un componente. Por ejemplo: ACTION_CALL (puede pasar una
llamada telefónica), ACTION_MAIN (actividad principal de la
aplicación), ACTION_SYNC (sincroniza datos entre el
dispositivo y un servidor), etc. También puede crear sus propias acciones.
·
Datos (etiqueta data): especifican el tipo de datos tratado por el
componente.
·
Categorías (etiqueta
category): especifican la categoría del componente.
Por ejemplo:CATEGORY_BROWSABLE (el navegador lo puede invocar para
mostrar datos),CATEGORY_LAUNCHER (la actividad estará disponible
desde el lanzador de la aplicación), etc.
·
Extras: representa datos adicionales que
serán facilitados a la actividad.
·
Diferentes flags útiles para la actividad.
Por ejemplo:
<activity android:name=".MyActivity"
android:label="@string/activity_title">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"
/>
</intent-filter>
</activity>
3. Especificar el tamaño de los elementos
En cada declaración de un elemento de una vista
(layout o componente), debe especificar su altura y su anchura (android:height y android:width).
Puede especificar estos valores de varias maneras:
·
match_parent (anteriormente fill_parent): significa que el
tamaño del elemento es igual al del elemento padre.
Por ejemplo, un botón que tenga definida
la anchura a un valor match_parent ocupará el mismo espacio que su contenedor.
·
wrap_content: significa que el tamaño del elemento es igual
al de su contenedor.
Por ejemplo, un botón que tenga la anchura
definida a wrap_content tendrá el tamaño de la suma del tamaño de su contenido
más el de los diferentes espacios internos.
·
Especificando un valor: puede definir el tamaño de un elemento con
constantes.
Hay
que especificar el tamaño de los elementos en dp (density-independent
pixels) y no en px. Los tamaños especificados en dp conservan las
mismas proporciones sea cual sea la densidad de pantalla.

No hay comentarios:
Publicar un comentario