Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nivel API es un valor entero que identifica de forma exclusiva la revisin de la API
marco que ofrece una versin de la plataforma Android. La plataforma Android
ofrece una API de marco en el que las aplicaciones pueden utilizar para interactuar
con el sistema Android subyacente.
La API de marco consiste en:
Un conjunto bsico de paquetes y clases.
Un conjunto de elementos y atributos XML para la declaracin de un archivo
de manifiesto.
Un conjunto de elementos y atributos XML para la declaracin y el acceso a
los recursos.
Un conjunto de Intenciones.
Nivel API
23
22
21
Cdigo de Versin
M
LOLLIPOP_MR1
LOLLIPOP
Android 4.4W
20
KITKAT_WATCH
Android 4.4
Android 4.3
Android 4.2, 4.2.2
Android 4.1, 4.1.1
19
18
17
16
15
KITKAT
JELLY_BEAN_MR2
JELLY_BEAN_MR1
JELLY_BEAN
ICE_CREAM_SAND
WICH_MR1
ICE_CREAM_SAND
WICH
HONEYCOMB_MR2
HONEYCOMB_MR1
HONEYCOMB
GINGERBREAD_M
R1
14
Android 3.2
Android 3.1.x
Android 3.0.x
Android 2.3.4
Android 2.3.3
Android 2.3.2
Android 2.3.1
Android 2.3
Android 2.2.x
Android 2.1.x
Android 2.0.1
Android 2.0
Android 1.6
Android 1.5
Android 1.1
Android 1.0
13
12
11
2.3.
10
Notas
API Changes
Platform Highlights
KitKat for Wearables
Only
Platform Highlights
Platform Highlights
Platform Highlights
Platform Highlights
Platform Highlights
Platform Highlights
Platform Highlights
Platform Highlights
9
GINGERBREAD
8
7
6
5
4
3
2
1
FROYO
ECLAIR_MR1
ECLAIR_0_1
ECLAIR
DONUT
CUPCAKE
BASE_1_1
BASE
Platform Highlights
Platform Highlights
Platform Highlights
Platform Highlights
Una de las
caractersticas que hacen a Gradle tan sencillo de usar, es que los scripts usan un
lenguaje especfico de dominio (Domain-Specific Language, DSL) que extiende el
lenguaje de programacin Groovy. Esto le da a Gradle a la vez sencillez y poder, ya que
en los scripts se pueden utilizar elementos tanto de programacin orientada a objetos
como de programacin funcional. Gradle cuenta tambin con una arquitectura de
plugins y de entrada ofrece varios muy tiles: para compilar proyectos Java, proyectos
Groovy (y por supuesto hbridos Java+Groovy), crear artefactos para publicar en
repositorios Maven, generar documentacin tcnica (Javadoc/Groovydoc), realizar
pruebas unitarias y generar reportes con los resultados, etc. Y por supuesto, cuenta con
una API para que terceros puedan crear sus propios plugins.
4. Qu son las vistas?
Vistas son elementos grficos que se incluyen en las actividades y que permiten mostrar
informacin al usuario o permitir que ste interacte con la aplicacin.
Son la base del desarrollo de interfaces grficas en Android. Todos los elementos
grficos, comnmente llamados widgets o componentes en otros entornos, son subclases
de View. Otros elementos ms complejos, como agrupaciones de vistas o layouts
tambin heredan de esta clase. As pues, en Android, un botn ser una vista, as como
tambin un campo de edicin de texto.
4.1.
Entre los diferentes tipos de vistas que tiene Android, hay uno que tiene especial
relevancia: layout Se trata de una vista que puede contener a otras vistas. En
realidad no hay un nico diseo: disponemos de varios que se diferencian en la
forma en la que stos distribuyen las vistas que contienen por el rea visible de la
actividad. Porque, adems de permitirnos organizar las vistas de forma jerrquica
La clase view es til como clase base para los widgets, que son unas
subclases ya implementadas que dibujan los elementos en la pantalla. Los
widgets contienen sus propias medidas, pero puedes usarlas para construir tu
interfaz ms rpidamente. La lista de widgets que puedes utilizar incluyen
Text, EditText, InputMethod, MovementMethod, Button, RadioButton,
CheckBox, y ScrollView.
4.1.2. Viewgroups: Un
viewgroup
es
un
objeto
de
la
clase
android.view.Viewgroup, como su propio nombre indica, un viewgroup es
un objeto especial de view cuya funcin es contener y controlar la lista de
views y de otros viewgroups. Los viewgroups te permiten aadir estructuras
a la interfaz y acumular complejos elementos en la pantalla que son
diseccionados
por
una
sola
entidad.
La clase viewgroup es til como base de la clase layouts, que son subclases
implementadas que proveen los tipos ms comunes de los layouts de
pantalla. Los layouts proporcionan una manera de construir una estructura
para una lista de views.
4.2.
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:text="Segunda fila"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<TextView
android:text="Tercera fila"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
Resultado de ejecutar
el cdigo.
de una columna para hacer que la tabla pueda ocupar todo el espacio que
tenga disponible. Hay que tener en cuenta que se Introduccin al diseo de
interfaces grficas en Android 14 Copyright 2012-13 Dept. Ciencia de la
Computacin e IA All rights reserved. pueden utilizar ambos mtodos para
una misma columna; en este caso la anchura de la columna siempre se
incrementar hasta que se utilice todo el espacio disponible, pero nunca ms.
Otra opcin disponible es ocultar una columna por medio del mtodo
setColumnCollapsed.
El siguiente ejemplo muestra un TableLayout definido como recurso de la
aplicacin por medio de un fichero XML. Como se puede observar en el
cdigo se ha introducido un elemento View cuya nica funcin es de servir
de separador visual entre la segunda y la tercera fila:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TableRow>
<Button
android:text="Uno"
android:padding="3dip" />
<Button
android:text="Dos"
android:padding="3dip" />
</TableRow>
<TableRow>
<Button
android:text="Tres"
android:padding="3dip" />
<Button
android:text="Cuatro"
android:padding="3dip" />
<Button
android:text="Cinco"
android:padding="3dip" />
</TableRow>
<View
android:layout_height="2dip"
android:background="#FF909090" />
<TableRow>
<Button
android:text="Seis"
android:padding="3dip" />
<Button
android:text="Siete"
android:padding="3dip" />
</TableRow></TableLayout>
Resultado de ejecutar el
cdigo.
android:layout_below="@id/etiqueta"/>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/entrada"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:text="OK" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/ok"
android:layout_alignTop="@id/ok"
android:text="Cancelar" />
</RelativeLayout>
Ejemplo de AbsoluteLayout:
<AbsoluteLayout xmlns:android="http://schemas.
android:layout_height="match_parent"
android:layout_width="match_parent">
<AnalogClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="50px"
android:layout_y="50px"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Un checkBox"
android:layout_x="150px"
android:layout_y="50px"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Un botn"
android:layout_x="50px"
android:layout_y="250px"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Un texto cualquiera"
android:layout_x="150px"
android:layout_y="200px"/>
</AbsoluteLayout>
<FrameLayout xmlns:android="http://schemas...
android:layout_height="mach_parent"
android:layout_width="match_parent">
<AnalogClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Un checkBox"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Un botn"
android:visibility="invisible"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Un texto cualquiera"
android:visibility="invisible"/>
</FrameLayout>
4.3.
Se trata de un nmero entero que sirve para identificar cada objeto view de forma
nica dentro de nuestro programa, cuando lo declaramos a travs de un xml de
resource podemos hacer referencia a la clase de recursos R usando una @, esto es
imprescindible, ya que si no podremos identificar nuestros elementos en nuestro
programa para despus usarlos y/o modificarlos, veamos algunos ejemplos:
android:id=@id/boton. Hace referencia a un id ya existente asociado a la
etiqueta boton, esto se usa para cuando usamos los Layout Relativos, ya
que para ubicar los elementos, lo hacemos indicando por ejemplo que un
botn lo insertamos a la derecha de otro, pues bien ese otro se pone as.
android:id=@+id/boton2. Esto crea una nueva etiqueta en la clase R
llamada boton2.
4.4.
Manejo de Eventos
Los eventos de usuario sirven para capturar la interaccin del usuario con una
determinada aplicacin. Existen varias maneras de realizarlo.
Hay tres siguientes conceptos relacionados con Android Gestin de Eventos
Los oyentes de eventos - Un detector de eventos es una interfaz en la clase View
que contiene un nico mtodo de devolucin de llamada. Estos mtodos sern
llamados por el marco de Android cuando la vista a la que el oyente se ha
registrado es desencadenada por la interaccin del usuario con el elemento de la
interfaz de usuario.
Los oyentes de eventos de registro - El registro de eventos es el proceso por el
cual un controlador de eventos se ha registrado en un detector de eventos para
que el manejador se llama cuando el detector de eventos desencadena el evento.
Controladores de eventos - Cuando ocurre un evento y hemos registrado y
detector de eventos para el evento, el detector de eventos llama a los
controladores de eventos, que es el mtodo que realmente controla el evento.
Controlador de
eventos
al hacer clic()
OnClickListener ()
Esto se llama cuando el usuario ya sea clics o toques o se centra
en cualquier tipo de artilugio como el botn, texto, imagen, etc
Usted usar onClick () controlador de eventos para manejar tal
evento.
onLongClick ()
OnLongClickListener ()
Esto se llama cuando el usuario ya sea clics o toques o se centra
en cualquier tipo de artilugio como el botn, texto, imagen, etc.,
para uno o ms segundos. Utilizar onLongClick () controlador
de eventos para manejar tal evento.
onFocusChange ()
OnFocusChangeListener ()
Esto se llama cuando el widget pierde su enfoque es decir, el
usuario se aleja del punto de vista. Utilizar onFocusChange ()
controlador de eventos para manejar tal evento.
OnKey ()
OnFocusChangeListener ()
Esto se llama cuando el usuario se centra en el elemento y
presiona o libera una clave de hardware en el dispositivo.Utilizar
OnKey () controlador de eventos para manejar tal evento.
onTouch ()
OnTouchListener ()
Esto se llama cuando el usuario pulsa la tecla, libera la tecla, o
cualquier gesto de movimiento en la pantalla. Utilizar onTouch
() controlador de eventos para manejar tal evento.
onMenuItemClick ()
OnMenuItemClickListener ()
onCreateContextMenuItemListener ()
Esto se llama cuando se est construyendo en el men contextual
(como el resultado de una sostenida "clic largo)
4.4.2.Modo Tctil
Cuando el usuario est navegando por la interfaz de usuario con teclas direccionales
o con un trackball, es necesario darle el focus a los items accionables (como los
botones) para que el usuario pueda ver qu va a aceptar el input. Si el dispositivo
tiene capacidades tctiles y el usuario empieza interactuando con la interfaz
tocndola, entonces no es necesario destacar los items, ni darle el focus a un View
en particular. Este ser el llamado "modo tctil."
En un dispositivo tctil, una vez que el usuario toca la pantalla, el dispositivo entra
en
modo
tctil.
Desde
ese
momento,
slo
los
Views
con isFocusableInTouchMode() true podrn recibir el focus, como por ejemplo los
widgets editores de texto. Otros Views tctiles, como los botones, no recibirn el
focus cuando son tocados, lo que harn ser lanzar sus listeners on-click cuando son
pulsados.
En el momento en el que el usuario pulsa una tecla direccional o hace scroll con un
trackball, el dispositivo abandona el modo tctil y encuentra un view que agarre el
focus. En este momento el usuario puede recuperar la interaccin con la interfaz de
usuario sin tocar la pantalla.
El estado del modo tctil se mantiene durante todo el sistema (todas las ventanas y
actividades). Para obtener el estado en curso, se puede llamar al
mtodo isInTouchMode() para ver si el dispositivo est en modo tctil o no.
4.4.3.Manejar el focus
<LinearLayout
android:orientation="vertical"
... >
<Button android:id="@+id/top"
android:nextFocusUp="@+id/bottom"
... />
<Button android:id="@+id/bottom"
android:nextFocusDown="@+id/top"
... />
</LinearLayout>
En este layout vertical, si navegamos hacia arriba a partir del primer botn no
iriamos a ningn lado, tampoco si navegamos hacia abajo desde el segundo
botn. Pero una vez que el botn superior ha definido el de abajo como el
nextFocusUp (y vice versa), el focus navegacional ir desde arriba hacia abajo y
desde abajo hacia arriba.
Si se quiere declarar en la IU un View como que puede recibir el focus (cuando
normalmente no lo hara), aadir el atributo XML android:focusable al View en
la declaracin del layout. Setear el valor true. Tambin se puede declarar un
View como que puede recibir el focus si est en modo tctil
con android:focusableInTouchMode.
Para pedir que un View en particular reciba el focus, llamar al
mtodo requestFocus().
Para escuchar a los eventos del focus (ser notificado cuando un View recibe o
pierde el focus) utilizar el mtodo onFocusChange(), como se detalla en la
seccin Listeners de Eventos.
4.5.
Controlador
Tambien conocido como Activity , Cada actividad esta implementada como una
simple clase Java que extiende (hereda) de la clase Activity de Android. Una
actividad se encargar de mostrar una interfaz de usuario o pantalla grfica,
compuesta de vistas (cada unos de los elementos de la pantalla), y de tratar los
eventos sobre estas vistas.
Una actividad (o Activity) es la componente principal encargada de mostrar al
usuario la interfaz grfica, es decir, una actividad sera el equivalente a una ventana,
y es el medio de comunicacin entre la aplicacin y el usuario. Se define una
actividad por cada interfaz del proyecto. Los elementos que se muestran en ella
deben ser definidos en el fichero xml que llevan asociado (que se guarda en
./res/layout) para poder ser tratados en la clase NameActivity.class, que hereda de la
clase Activity.
Dentro del fichero xml asociado a la actividad, se definen los elementos tales como
ubicacin de los elementos en la pantalla (layouts), botones, textos, checkbox, etc.
Las actividades tienen un ciclo de vida, es decir, pasan por diferentes estados desde
que se inician hasta que se destruyen. Sus 3 posibles estados son:
guardados
en
onCreate()
onStart()
onResume()
onRestart ()
onPause()
onStop()
onDestroy()
Modelo
Nos referimos con modelo a las representaciones que construiremos basadas en
la informacin con la que operar nuestra aplicacin. En Java, el modelo viene
siendo anlogo a los beans que tienen la particularidad de ser reutilizables,