19.4 Ajustes de interacción: tiempo de pulsación, toques repetidos y sensibilidad

19.4 Ajustes de interacción: tiempo de pulsación, toques repetidos y sensibilidad

1. Tiempo de pulsación prolongada (Long-Press Delay)

El tiempo de pulsación prolongada define cuánto debe mantener el usuario el dedo en pantalla antes de que el sistema o la aplicación considere una “pulsación larga”. Android ofrece:

  • Valor por defecto: 500 ms (configurable por el usuario en Ajustes → Accesibilidad → Duración de la pulsación prolongada).
  • Configuración de desarrollador: en Settings → Developer options → Input → Long press timeout.

En código, puedes consultar y respetar este valor con:

int timeout = ViewConfiguration.get(context).getLongPressTimeout()

Si necesitas un comportamiento más fino en un View:

  1. Implementa GestureDetector.OnGestureListener y sobrescribe onLongPress().
  2. Ajusta el parámetro longPressTimeout al crear el detector:
  3. GestureDetector detector = new GestureDetector(context, listener, null, false)
    detector.setIsLongpressEnabled(true)

2. Toques repetidos (Repeat Tap Double-Tap)

Para acciones que requieren pulsaciones múltiples (por ejemplo, doble-tap o triple-tap):

  • Double-Tap Timeout (por defecto ~300 ms): tiempo máximo entre dos toques para considerarlo doble-tap.
  • Multi-Tap Timeout (por defecto ~600 ms): umbral para secuencias de más de dos toques.

Estos valores también se obtienen de ViewConfiguration:

int doubleTapTimeout = ViewConfiguration.getDoubleTapTimeout()
int multiTapTimeout = ViewConfiguration.getMultiTapTimeout()

Para detección personalizada:

  1. Usa GestureDetector.SimpleOnGestureListener e implementa onDoubleTap() y onDoubleTapEvent().
  2. En controles avanzados, gestiona manualmente MotionEvent midiendo event.getEventTime() – event.getDownTime().

3. Sensibilidad de puntero y área táctil

La sensibilidad define la relación entre desplazamiento físico y movimiento de cursor (ratón o touchpad). Se controla desde:

  • Ajustes → Accesibilidad → Puntero y ratón → Velocidad del puntero.
  • En Developer options: Pointer speed.

Puedes leer/modificar el valor con Settings.System:

// Leer velocidad
int speed = Settings.System.getInt(resolver, Settings.System.POINTER_SPEED, 0)
// Ajustar velocidad
Settings.System.putInt(resolver, Settings.System.POINTER_SPEED, newSpeed)

Para aumentar la accesibilidad:

  • Amplía el Touch Target con android:touchDelegate o setTouchDelegate() para zonas pequeñas.
  • Ofrece un control de sensibilidad interno en tu app (por ejemplo, un slider para calibrar gestos personalizados).

Buenas prácticas

  • Respeta siempre los valores de ViewConfiguration y de usuario antes de aplicar ajustes propios.
  • Proporciona feedback visual o háptico cuando cambie la modalidad de interacción.
  • Testea en distintos dispositivos y con usuarios con movilidad reducida para verificar usabilidad.

Profundizando sobre: 19.4 Ajustes de interacción: tiempo de pulsación, toques repetidos y sensibilidad

  • Android Developers – Accessibility Developer Guide: documentación oficial de Google sobre ajustes de interacción, incluyendo tiempo de pulsación, toques repetidos y sensibilidad.
    https://developer.android.com/guide/topics/ui/accessibility
  • Professional Android, 4th Edition (Reto Meier amp Ian Lake): capítulo dedicado a accesibilidad y manejo de gestos, con ejemplos de personalización de tiempo de pulsación y detección de toques.
  • Android Cookbook (Ian F. Darwin): recetas prácticas para detectar gestos, configurar umbrales de sensibilidad y gestionar eventos de toque prolongado.
  • Codelab – Accessibility Fundamentals: aprendizaje práctico paso a paso para implementar ajustes de interacción accesibles.
    https://codelabs.developers.google.com/android-accessibility-fundamentals
  • Android UI Design Patterns (Greg Nudelman): incluye patrones y recomendaciones sobre retroalimentación táctil, tiempos de pulsación y gestos repetidos.

Blogs y artículos especializados:

Foros y comunidades:

PreviusNext


¿Necesitas ayuda con este punto? Nuestra IA te puede ayudar

  • Hola 👋 , soy la IA de Synzen.org, puedes preguntarme siempre sobre la página donde estás leyendo, yo también la leo, así que puedo ayudarte a entenderlo, expandirlo, ponerte ejercicios…¡y mucho más!
Quiero saber más sobre… ...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *