Professional Documents
Culture Documents
Sesión 2:
Interfaz de usuario
I. OBJETIVOS
• Vistas
• Controles
• Layout (diseño)
• Widgets
En una aplicación Android, la interfaz de usuario se construye a través de los objetos View y
ViewGroup. Los objetos View son las unidades básicas de la interfaz de usuario. La clase View
sirve como base para las subclases llamadas “widgets” los cuales ofrecen objetos IU plenamente
implementados, tales como campos de texto y botones. La clase ViewGroup sirve como base para
las subclases llamadas “layouts” las cuales ofrecen diferentes tipos de arquitecturas de diseño,
como lineal, tabular y relativo.
Un objeto View es una estructura de datos cuyas propiedades almacenan los parámetros de
diseño y contenido para un área rectangular específica de pantalla. Este tipo de objeto gestiona su
propia medición, diseño, dibujo, cambio de foco, desplazamiento e interacciones claves. De esta
manera, todos los componentes visuales descienden de la clase View.
VISTA JERÁRQUICA
En la plataforma Android, se define la interfaz de usuario de una actividad usando una jerarquía de
nodos View y ViewGroup, tal como se muestra en el diagrama inferior. Este árbol jerárquico
puede ser tan simple o complejo según se requiera, y se construye usando el conjunto de widgets
y layouts predefinidos o con las vistas personalizadas que se puedan crear.
La clase ViewGroup de una extensión de la clase View diseñado para contener múltiples vistas.
Con el fin de adjuntar la vista del árbol jerárquico a la pantalla para la interpretación, la actividad
debe llamar al método setContentView() y pasar una referencia al objeto nodo raíz. El sistema
recibe esta referencia y la usa para validar, medir y dibujar el árbol.
CONTROLES
Android proporciona una caja de herramientas de vistas estándar para ayudar a crear interfaces
simples. Los más importantes controles son listados a continuación:
• TextView: Etiqueta de texto de solo lectura
• EditText: Una caja de entrada de texto editable. Acepta entradas de varias líneas
• ListView: Crea y gestiona una lista vertical de vistas, mostrándolas como filas dentro de la
lista
• Spinner: Muestra una vista texto y una asociada ListView que permite seleccionar un ítem
de la lista y mostrarlo en una caja de texto
• Button: Un botón estándar.
• Checkbox: Un botón de doble estado.
• ViewFlipper: permite definir una colección de vistas como una fila horizontal en la cual solo
una vista es visible a la vez, y la transición entre vistas es animada
LAYOUT
Son extensiones de la clase ViewGroup usada para posicionar los controles en la interfaz de
usuario. Los layouts pueden anidarse, permitiendo ello crear complejas interfaces usando una
combinación de layouts. El SDK de Android incluye algunos layouts para ayudar en la construcción
de las interfaces de usuario. Estos son:
• FrameLayout: sujeta cada vista hijo a la esquina superior izquierda
• LinearLayout: alinea cada vista hijo en una línea vertical u horizontal
• RelativeLayout: permite definir las posiciones de cada vista hijo relativa a las otras y a los
límites de la pantalla
• TableLayout: permite distribuir vistas usando una grilla de filas y columnas
• Gallery: muestra una fila de ítems en una lista horizontalmente desplazable
La manera más común de definir un layout y expresar la vista jerárquica es a través del archivo de
diseño XML. Cada elemento en XML es un objeto View o ViewGroup. Los objetos View son las
hojas en el árbol, y los objetos ViewGroup son las ramas en el árbol.
El nombre de un elemento XML es establecido según la clase Java que representa. De esta
manera, el elemento <TextView> crea un TextView en la interfaz de usuario, y un elemento
<Linear Layout> crea un grupo vista LinearLayout.
WIDGETS
Un Widget es un objeto vista que sirve como una interfaz para la interacción con el usuario. Un
amplio conjunto de widgets son provistos por Android, tales como Buttons, Checkboxes,
TextFields. Algunos widgets más complejos provistos son por ejemplo date picker, clock, y
controles zoom.
2. En los siguientes cuadros de diálogos deje todas las opciones por omisión y al final haga click
en el botón Finalizar.
<color name="nuevoColor">#C5e2f0</color>
<string name="Dolares">A soles</string>
<string name="Soles">A dólares</string>
<string name="Calc">calcular</string>
<string name="miClicManejador">miClicManejador</string>
</resources>
10. De la sección Widgets agregue dos controles RadioButton dentro del contenedor RadioGroup
y configure las siguientes propiedades (doble click sobre cada RadioButton)
Primer RadioButton:
text: Dólares
checked: true
id: radio0
Segundo RadioButton:
text: Soles
checked: false
id: radio1
11. Agregue un objeto Button al diseño de la interfaz, con las siguientes propiedades:
text: Calc
id: button1
14. Al objeto button1 agregue el método click para ello en la propiedad OnClick busque y
seleccione el nombre miClicManejador.
15. Modifique la propiedad de backgroud de cada control para elegir el color como se muestra en
la figura
import android.view.View;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;
// Convierte a dólares
private double convierteSolesADolares(float soles) {
return (soles/3.5);
}
// Convierte a soles
private double convierteDolaresASoles(float dolares) {
return (dolares*3.5);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is
GridView
18. Agregue un control GridView debajo del botón Calc y configure las propiedades como sigue:
19. Copie en la carpeta drawable una serie de imágenes para que sea visualizado por el gridview.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (EditText) findViewById(R.id.editText);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int
position, long id) {
}
});
V. Ejercicios
1. Cree una aplicación que permita realizar conversiones entre distintos tipos de monedas.
Considere divisas como: Euro (Europa), Libra (Inglaterra), Rupia (India), Real (Brasil), Peso
(México), Yuan (China) y Yen (Japón), además del dólar y nuevo sol.
2. Elabore una aplicación que implemente un objeto GridView para que muestre una grilla de
imágenes sobre los distintos tipos de pizzas y que muestre el nombre de la pizza al hacer click.
VI. Cuestionario