Ejercicios
Pantalla táctil
Vamos a implementar una nueva aplicación Eventos
, en la que mostraremos una caja en la pantalla (un rectángulo de 20x20) y la moveremos utilizando la pantalla táctil. Se pide:
a) Empezar haciendo que se mueva la caja al punto en el que el usuario pone el dedo y comprobar que funciona correctamente (sólo hace falta reconocer el evento DOWN
).
b) Implementar ahora también el evento de movimiento (MOVE
), para hacer que la caja se desplace conforme movemos el dedo.
c) Sólo querremos que la caja se mueva si cuando pusimos el dedo en la pantalla lo hicimos sobre la caja. En el evento DOWN
ya no moveremos la caja, sino que simplemente comprobaremos si hemos pulsado encima de ella.
Esto último se puede conseguir de forma sencilla devolviendo
true
ofalse
cuando se produzca el eventoDOWN
, según si queremos seguir recibiendo eventos para ese gesto o no. Si se pulsa fuera de la caja podemos devolverfalse
para así no recibir ningún evento de movimiento correspondiente a ese gesto.
Gestos
Continuaremos trabajando con el proyecto anterior, en este caso para reconocer gestos. Se pide:
a) Modificar el ejercicio anterior para utilizar un detector de gestos para desplazar la caja. Utilizaremos el evento onDown
para determinar si el gesto ha comenzado sobre la caja, y onScroll
para desplazarla.
b) Reconocer el evento tap realizado sobre la caja. Cuando esto ocurra se deberá cambiar el color de la caja.
c) Reconocer el gesto fling ejercido sobre la caja. Cuando esto ocurra mostraremos un vector (línea) saliendo de la posición en la que terminó el gesto indicando la velocidad y dirección con la que se lanzó.
d) De forma optativa, se puede hacer que al realizar el gesto fling sobre la caja ésta se lance con cierta inercia. Para hacer esto necesitaremos un hilo o temporizador que vaya actualizando la posición de la caja según su velocidad, e irá dismunuyendo su velocidad debido al rozamiento.
Acelerómetro
Implementar una aplicación Acelerometro
que muestre en una tabla los valores de aceleración para las coordenadas X, Y, Z.
Sólo podremos hacer este ejercicio si contamos con un dispositivo real, ya que el emulador no soporta este tipo de sensor.
Geolocalización
Implementar una nueva aplicación Geolocalizacion
que nos localice geográficamente utilizando GPS, y nos muestre tanto nuestras coordenadas como nuestra dirección en forma de texto.
Para poder probar esto en el emulador deberemos indicarle manualmente al emulador las coordenadas en las que queremos que se localize. Esto lo podemos hacer de dos formas: mediante línea de comando o mediante la aplicación DDMS. Vamos a verlas a continuación.
Para comunicar las coordenadas al emulador mediante línea de comando deberemos conectarnos a él mediante telnet
. Por ejemplo, si nuestro emulador está funcionando en el puerto 5554
, haremos un telnet
a localhost
y a dicho puerto:
Una vez dentro de la línea de comando del emulador, invocaremos el comando geo
para suministrarle las coordenadas. Por ejemplo, las siguientes coordenadas corresponden a la Universidad de Alicante:
Si no queremos tener que ir a línea de comando, podemos utilizar la aplicación DDMS a la que se puede acceder de forma indepdiente o desde dentro de Eclipse. Dado que estamos ejecutando el emulador desde Eclipse, deberemos lanzar DDMS también dentro de este entorno. Para ello deberemos mostrar la vista Emulator Control. En ella veremos unos cuadros de texto y un botón con los que enviar las coordenadas al emulador, siempre que esté en funcionamiento.
Debido a un bug del SDK de Android, el DDMS no envía correctamente las coordenadas al emulador si nuestro locale no está configurado con idioma inglés. Para solucionar esto de forma sencilla, podemos editar el fichero
eclipse.ini
y añadir dentro de él la opción-Duser.language.en
. Si no hacemos esto, el emulador recibirá siempre las coordenadas0, 0
.
Para utilizar el geocoder, deberemos utilizar un emulador que incorpore las APIs de Google (para así poder acceder a la API de mapas). Además, dado que necesitará conectarse a Internet para obtener las direcciones, deberemos solicitar el permiso INTERNET
.
En el emulador de la plataforma Android 2.2 no funciona correctamente el geocoder. Funcionará correctamente si utilizamos, por ejemplo, un emulador con Google APIs de nivel 3 (versión 1.5 de la plataforma).
Reconocimiento del habla
Implementar una nueva aplicación Habla
con un campo de texto y un botón. Al pulsar sobre el botón se lanzará el módulo de reconocimiento del habla, y una vez finalizado mostraremos lo que se haya reconocido en el campo de texto.
Sólo podremos hacer este ejercicio si contamos con un dispositivo real, ya que el emulador no soporta el reconocimiento del habla.
Última actualización
¿Te fue útil?