¿Cómo se detecta la duración de un evento táctil de Android 2.1? Me gustaría responder solo si la región ha sido presionada durante 5 segundos, por ejemplo.Android Touch Evento que determina la duración
6
A
Respuesta
12
Puede intentar mezclar MotionEvent
y Runnable
/Handler
para lograrlo.
Código de ejemplo:
private final Handler handler = new Handler();
private final Runnable runnable = new Runnable() {
public void run() {
checkGlobalVariable();
}
};
// Other init stuff etc...
@Override
public void onTouchEvent(MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
// Execute your Runnable after 5000 milliseconds = 5 seconds.
handler.postDelayed(runnable, 5000);
mBooleanIsPressed = true;
}
if(event.getAction() == MotionEvent.ACTION_UP) {
if(mBooleanIsPressed) {
mBooleanIsPressed = false;
handler.removeCallbacks(runnable);
}
}
}
Ahora sólo tiene que comprobar si es mBooleanIsPressed
true
en la función checkGlobalVariable()
.
Una idea que se le ocurrió cuando estaba escribiendo esto era utilizar las marcas de tiempo simples (por ejemplo System.currentTimeMillis()
) para determinar la duración entre MotionEvent.ACTION_DOWN
y MotionEvent.ACTION_UP
.
8
En este caso, no puede usar marcas de tiempo Unix. Android ofrece su propia medida de tiempo.
long eventDuration =
android.os.SystemClock.elapsedRealtime()
- event.getDownTime();
21
long eventDuration = event.getEventTime() - event.getDownTime();
Cuestiones relacionadas
- 1. UIImageView Touch Evento
- 2. Android Vibrate on touch?
- 3. Obtener la duración de mp3 en Android
- 4. Sencha Touch 2 - Android Performance
- 5. Sencha Touch 2 android performance
- 6. UIButton evento 'Touch Up Inside' no funciona. 'Touch Down' funciona bien
- 7. UINavigationBar Touch
- 8. Android Multitouch - ¿Determina qué dedo se levantó?
- 9. cómo deshabilitar el evento táctil android
- 10. 'Servicio' de Android de larga duración
- 11. Manejando evento Touch en UILabel y conectándolo a un IBAction
- 12. Calcular duración
- 13. Long Touch en un surfaceView (android)
- 14. El evento de clic de Backbone.js no funciona con touch
- 15. jQuery live() eliminando los atributos del evento iPhone touch?
- 16. Eventos Slow JavaScript touch en Android
- 17. ¿Cómo se determina la velocidad de un dispositivo Android?
- 18. Touch dos puntos de vista a la vez en android
- 19. Android determina la orientación de la pantalla en tiempo de ejecución
- 20. Emacs que determina el diseño del teclado
- 21. CSS que determina la consulta de medios activos
- 22. Cómo evitar que la aplicación Ipod Touch entre en suspensión
- 23. ¿Determina si la página actual requiere autorización?
- 24. rotación y escalado usando multi touch en android
- 25. duración máxima de captura de vídeo en android
- 26. android operación de larga duración para actualizar un appwidget
- 27. Android: ¿Cómo llamar a Touch solo después de un onLongClick?
- 28. Evento de animación final android
- 29. ¿Los dispositivos Android/webOS admiten eventos Javascript multi-touch?
- 30. Android WebView contacto evento enlace
Ok. Esto es algo que necesito en la mayoría de mis pantallas de actividad. ¿Cómo habilitaría la escucha en la pantalla de Actividad? Implementé el detector onTouchEvent en la actividad, pero ¿cómo habilitas esto para la actividad, de modo que se llama al onTouchEvent cuando el usuario toca la pantalla de actividad? Gracias – Androider
La mayoría de los ejemplos están en términos de Canvas, etc. Mi onTouchEvent no se llama cuando el usuario toca la pantalla de Actividad – Androider
@Androider: Tal vez esté buscando http://developer.android.com/reference/android/app/Activity .html # dispatchTouchEvent (android.view.MotionEvent)? – Wroclai