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)

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

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 🙂

  • Problema con Proguard de Android: sigue recibiendo error "java.io.IOException: No se puede procesar la clase ..." cuando se oculta la obfuscación
  • Android: Programe el modo de selección de texto en un WebView en Jelly Bean
  • fije el ancho y la altura como porcentaje en el diseño relativo
  • Uso de Android-UIL, ¿Cómo detener la descarga?
  • Cómo agregar CardView dentro de Gridview
  • Programe un par de dispositivos Bluetooth sin que el usuario introduzca el pin
  • Eclipse - ¿debo limpiar el proyecto antes de exportar un APK?
  • ¿Cómo cortar y revertir la vista de la cámara?
  • Agregar el botón a PreferenceScreen
  • CountDownTimer.cancel () no funciona en Android
  • Combinar dos imágenes en android java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.