Usuario:ManuelRomero/Android/Eventos

Tipo de eventos

 * En android como en java la gestión de eventos se gestiona mediante los manejadores de eventos o listener
 * Concepto de delegación de eventos
 * Concepto de accion y evento
 * Como ciertos eventos los maneja android de forma transparente mediante propiedades en el xml
 * Eventos que vamos a tratar
 * 1) Pantalla táctil
 * 2) Teclado
 * 3) Acelerómetro

Pantalla táctil
Se pueden clasificar según toquemos o el sistema sea capaz de reconocer sólo un toque o varios toques  Este tipo de eventos los manejará una clase que implemente la interfaz OnTouchListener El método para asociar ese manejador o listener a un objeto gráfico del cual queremos reconocer los eventos que se originen al generar esa acción sobre el objeto es 'View.setOnTouchListener, donde View'' sería sustituido por el objeto gráfico concreto La clase que implemente la interfaz OnTouchListener debe implementar el método onTouch... public abstract boolean onTouch (View v, MotionEvent evento) A continuación vemos la información que nos aporta el objeto evento que recibo como parámetro este método La clase MotionEvent Esta clase da informacion que identifIca la accioón de toque que ha ocurrido, así como la posición x,y donde ha ocurrido. En el caso de multiples toques MultiTouch MotionEvent guarda un identificador para cada dedo que ha tocado en la pantalla, y dicho identificador no cambia hasta que no se levanta dicho dedo. En el caso de que se al primer toque, el evento que se produce lleva una accion ACTION_UP, siguientes toques generarán un evento que llevarán como acción ACTION_POINTER_UP. El caso de MultiTouch es especial pues tendré varios toques de forma simultánea en la pantalla, y en un momento dado quiro tener identificado cada uno de ellos. Para hacer un seguimiento de cada toque, el sistema les asigna un indice y un identificador (index, id) 
 * 1) SingleTouch
 * 2) MultiTouch
 * Tipos de acciones
 * UP : El usuario quita el dedo de la pantalla. correspondes a acciones ACTION_UP o ACTION_POINTER_UP.
 * 1) DOWN :El usuario pone el dedo en la pantalla. correspondes a acciones ACTION_DOWN o ACTION_POINTER_DOWN.
 * 2) MOVE : El usuario mueve el dedo por la pantalla. ACTION_MOVE.
 * 3) CANCEL :Se cancela la acción de tocar la pantalla. ACTION_CANCEL.

Sensores

 * Los dispositivos móviles, son varios los sensores que pueden tener
 * Los podemos ver aquí http://developer.android.com/reference/android/hardware/Sensor.html.
 * Para gestionar los sensores tenemos las siguientes clases
 * 1) Sensor
 * 2) SensorEvent
 * 3) SensorManager
 * Para gestionar los eventos que generen este hardware debemos implemenatar la interfaz SensorEventListener.
 * El siguiente código me permite obtener una lista de todos los dispositivos, con él se puede entender de que forma se puede gestionar en el programa
 * Ideas importantes
 * SensorEventListener tiene dos métodos abstractos que hay que implementar

 En este caso no podemos asociar el listener a un objeto view, ya que es el dispositivo hardware el que genera los eventos boolean 	registerListener(SensorEventListener listener, Sensor sensor, int rateUs, Handler handler)
 * El primer método es invocado cuando cambia la preción o cualquier característica del sensor
 * El segundo método es invocado cuando cambia la posición del móvil respecto al eje de coordenadas que tiene establecido.
 * Lo que tenemos que hacer es registrar el listener, la clase que estamos implementando al administrador del sistema de sensores.
 * El último parámetro es un valor que de alguna forma indica cada cuanto tiempo voy a enviar información del sensor al sistema para acutalizarlo.
 * Un valor adecuado es la constante SensorManager.SENSOR_DELAY_GAME