Ene
31
2011

Montando la Interfaz Gráfica en Android, Parte I

El framework UI de Android proporciona tanto herramientas de dibujo, con las que construir la UI, como una rica colección de elementos ya creados.

Los componentes finales del árbol de vistas, que conforman la mayor parte de los elementos que se muestran en el contexto de una aplicación UI, se conocen como widgets.

Los nodos, llamados Container Views, son aquellos que pueden tener otros componentes como hijos y son derivados de la clase android.view.ViewGroup.

Un ViewGroup normalmente apenas realiza ningún dibujo y es responsable de situar a sus hijos en la pantalla, manteniéndolos en su sitio mientras que el dispositivo cambia de forma o de orientación.

Android nos ofrece la posibilidad de crear la “fachada” de la aplicación mediante ficheros XML. De esta forma, nos podemos concentrar en el aspecto funcional de la aplicación (código Java) o puramente estético (XML).

También se puede generar la interfaz mediante código Java, pero es mucho más correcto y ordenado usando lo que Android nos ofrece.

En la carpeta “res”, se almacenan todos los recursos del sistema. Dentro de estos recursos están nuestros archivos XML que usaremos para crear las vistas de nuestra aplicación.

Declarando el Layout

1. Estilo Java

2. Estilo XML En esta versión de código también se preserva la referencia a la raíz del árbol de vistas.

Se etiqueta al widget en el layout XML con android:id y se recupera la referencia desde el código con el método findViewById de la clase Activity.

Menús

Los menús proveen al usuario de información sobre funciones y configuraciones a cerca de la aplicación.

Existen diferentes tipos de menús dependiendo de las necesidades de cada situación.

Options Menu

Es el primer conjunto de elementos de menú para un Activity. Se muestra presionando la tecla MENU del dipositivo. Se divide en dos grupos de elementos:

Menú de iconos: permite un máximo de cinco elementos y se pueden añadir iconos. Menú extendido: es un listado vertical de elementos que se crea al existir más de cinco elementos.

Se muestra al pulsar sobre “Más”.

Al ser llamado por primera vez, el sistema ejecutará la función onCreateOptionsMenu()que se sobreescribe para proporcionar la funcionalidad que se requiera.

Los elementos de un menú se pueden añadir a través de la función add() que crea objetos MenuItem o utilizando un fichero XML definido en el directorio menu de la aplicación.

Cuando un elemento es seleccionado se realiza una llamada al método onOptionsItemSelected() que recibe el MenuItem relacionado. Dicho elemento se puede identificar a través de getItemId(), que devuelve el entero que le fue asignado con el método add()

Cxontext Menu Es parecido al evento “click-derecho” en un ordenador.

Cuando una View registra un menú de este tipo, si se presiona durante un tiempo sobre el objeto, revela un menú flotante que proporciona funcionalidad relacionada a dicho elemento.

Aunque se puede asociar a cualquier View es habitual hacerlo sobre los elementos de un ListView.

Para crear un menú contextual, se sobreescribien los métodos onCreateContextMenu() y onContextItemSelected().

Los elementos se añaden de igual forma que en el Options Menu. Para obtener información a cerca del elemento sobre el que se muestra el menú se solicita del AdapterContextMenuInfo asociado al objeto MenuItem. Finalmente se debe registrar el menú a la vista a través de registerForContextMenu(View).

Submenus

Se pueden añadir a cualquier menú, excepto a otro sub menú. Permite organizar las distintas funciones de una aplicación en temas. Para añadir un sub menú se utiliza la función addSubMenu().

Dialogs

Un Dialog es una pequeña ventana que aparece sobre la Activity que se está ejecutando capturando las acciones realizadas por el usuario.

Se utiliza normalmente para mostrar notificaciones y progresos de la aplicación al usuario. Para mostrar un dialogo se utiliza el método showDialog() indicando el indice que se le ha asignado

anteriormente en su incialización através del método onCreateDialog()

Si se desea cerrar el diálogo se puede descartar llamando a dissmis()del objeto Dialog o si es necesario se puede realizar a través del método dismissDialog(int) de la propia Activity.

Existen varios tipos de Dialogs:

AlertDialog

Esté tipo de Dialog puede uncluir de 1 a 3 botones, y una lista de elementos seleccionables que pueden incluir checkboxes o radio bttuons. Se pueden construir la mayor parte de las interfaces dialog de usuario y es el sugerido por la especificación.

ProgressDialog Hereda de AlertDialog y muestra una animación donde se muestra el progreso de una tarea que se está ejecutando.

Se pueden añadir botones que proveen funcionalidades requeridas por la aplicación.

El estilo por defecto de un dialogo de progreso es una rueda girando, se puede modificar el aspecto aplicando un estilo al dialogo.

Una Activity puede necesitar ejecutar un nuevo hilo donde se realizan operaciones y para ello debemos utilizar un objeto Handler que actualizará el diálogo de progreso.

Cuando enviamos un mensaje al Handler este lo guardará en una cola para que sea ejecutado por el hilo de la Activity.

DatePickerDialog

Permite al usuario seleccionar fechas.

TimePickerDialog
Permite al usuario seleccionar horas.

Share

Etiquetas: ,

Publicidad

One Response to “Montando la Interfaz Gráfica en Android, Parte I”

  1. Hola Amigo,

    Excelente articulo, si fuera posible que colocaras los fuentes para poder echarles una ojeada mas detallada! Gracias!






Deja tu Comentario