Diferencia entre revisiones de «Usuario:ManuelRomero/Android/Eventos»

De WikiEducator
Saltar a: navegación, buscar
Línea 17: Línea 17:
 
Este tipo de eventos los manejará una clase que implemente la interfaz '''''OnTouchListener'''''
 
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
 
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.
 +
;Tipos de acciones
 +
#UP : El usuario quita el dedo de la pantalla. correspondes a acciones ACTION_UP o ACTION_POINTER_UP.
 +
#DOWN :El usuario pone el dedo en la pantalla. correspondes a acciones ACTION_DOWN o ACTION_POINTER_DOWN.
 +
#MOVE : El usuario mueve el dedo por la pantalla. ACTION_MOVE.
 +
#CANCEL :Se cancela la acción de tocar la pantalla. ACTION_CANCEL.
 +
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)

Revisión de 13:44 2 dic 2013

Road Works.svg Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos.
Ver página de charlas.
Road Works.svg




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

  1. SingleTouch
  2. MultiTouch

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.

Tipos de acciones
  1. UP : El usuario quita el dedo de la pantalla. correspondes a acciones ACTION_UP o ACTION_POINTER_UP.
  2. DOWN :El usuario pone el dedo en la pantalla. correspondes a acciones ACTION_DOWN o ACTION_POINTER_DOWN.
  3. MOVE : El usuario mueve el dedo por la pantalla. ACTION_MOVE.
  4. CANCEL :Se cancela la acción de tocar la pantalla. ACTION_CANCEL.

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)