Android: Retroalimentación háptica: evento onClick () vs hapticFeedbackEnabled en la vista
Si desea un botón para proporcionar retroalimentación háptica (es decir, el teléfono vibra muy brevemente para que pueda sentir que realmente presionó el botón), ¿cuál es la forma estándar de hacerlo? Parece que puede establecer explícitamente un evento onClick () y llamar a la función vibrate (), dando un número de milisegundos para vibrar, o puede configurar hapticFeedbackEnabled en la vista.
La documentación parece indicar que este último sólo funciona para pulsaciones largas o teclas virtuales en pantalla: http://developer.android.com/reference/android/view/View.html#performHapticFeedback(int)
- Adición de jar externo al proyecto android
- Cómo hacer los métodos en beanshell?
- Android usando Intellij Versión 14 - Actualizar referencias XML sólo en el archivo de recursos XML actual
- Cómo almacenar Hashmap en Android para que se reutilice cuando la aplicación se reinicie con las preferencias compartidas?
- ¿Cómo mostrar una imagen en el cuerpo del correo electrónico?
Si eso es correcto, entonces necesito hacer mi botón virtual en la pantalla clave o manualmente configurar el evento onClick ().
¿Que recomiendas?
Además, si quiero que la vibración suceda inmediatamente cuando el dedo del usuario toca el botón, en lugar de cuando el dedo "libera" el botón, ¿cuál es la mejor manera de lograrlo?
Pregunta relacionada: Cómo habilitar la retroalimentación táctil en la vista de botón
- Programación orientada a objetos android
- Mejor estructura de datos de Java para almacenar la clave Value Pair
- Milliseconds to UNIX timestamp
- Copia y Pega de Android en cualquier campo de texto de cualquier aplicación
- La invocación de Apache DefaultHttpClient resulta en "java.lang.RuntimeException: Stub!"
- Cómo crear una tabla dinámica de datos en android?
- Capturando al ejecutor para el subproceso actual
- Android Game Development (Programación / Algoritmo) Pregunta
Yo uso vibrar () en mi aplicación de calculadora, pero eso fue sólo porque el sistema no tenía opciones de retroalimentación táctil cuando lo escribí. No recomiendo este enfoque por varias razones. En particular, cada teléfono tiene características diferentes (masa, motor vibrador, posición del motor, etc.) así que lo que "se siente" en un teléfono no será correcto en otro.
Sin embargo, es justo suponer que los fabricantes de teléfonos individuales han hecho por lo menos un poco de "ajuste" en sus productos en particular, por lo que la retroalimentación háptica incorporada tiene una mejor oportunidad de sentirse bien en todo el tablero.
Además, como se señaló anteriormente, si implementa su propio comentario háptico, tendrá que implementar su propio ajuste para él en sus preferencias. Es mucho mejor dejar que el usuario lo configure a nivel del sistema.
El tiempo lo permite (hah!) Planeo cambiar de usar vibrar () a usar la retroalimentación háptica incorporada del sistema.
Hay una descripción más larga en el Cookbook de Android – Capítulo Haptic Feedback
Resumen: hay varios pasos necesarios:
- Activar la vibración en el manifiesto
- Habilitar la retroalimentación háptica para el botón / vista
- Registrar un oyente de onTouch para su botón
- Call
performHapticFeedback()
en Tocar hacia abajo
Puede tener tanto un onTouchLister para la retroalimentación háptica como un onClickHandler para su acción, sólo asegúrese de que el onTouchHandler devuelve false, de lo contrario el evento se marca como consumido y no se da al onClickHandler.
Mi única solución hasta ahora ha sido poner una llamada a performHapticFeedback
en los botones OnClickListener. Esto funciona, pero parece un poco de un hack.
Creo que llamar a vibrar () manualmente no es una buena idea. Significaría alguien que no quiere la regeneración háptica tendrá su teléfono vibrar. Además, no sé cómo reacciona con productos que no vibran. SetHapticFeedbackEnabled es definitivamente la buena manera de hacerlo; El método fue creado para este purpopse muy específico.
Inmersión ha desarrollado un Android Haptic Feedback SDK , trae la realidad a Android y aplicaciones OS. No puedo esperar para los juegos 🙂
- Cargando JSON de String en JSONArray en Android
- Android: abrir el archivo guardado en la aplicación predeterminada de mi aplicación