Android: ¿Cómo determinar el índice de caracteres de la posición de un evento táctil en TextView?
Tengo un TextView
con un OnTouchListener
. Lo que quiero es el índice de caracteres que el usuario está señalando cuando recibo el MotionEvent
. ¿Hay alguna manera de llegar a las métricas de fuente subyacente de TextView
?
- Android- Ajusta el ancho de un TextView a la izquierda de cualquier botón-1 o botón-2
- Agregar una vista de texto a un FrameLayout en una posición determinada
- Establecer una cadena spannable no funciona en una simple Textview
- Etiqueta vertical (girada) en Android
- ¿Cómo puedo probar por Espresso android.widget.TextView setError?
- Android setError ("error") no funciona en Textview
- Establecer el peso de diseño de un TextView programaticamente
- Horizontalmente Scrollable TextView mostrar el comportamiento inconsistente en las versiones de Android
- Cambiar tamaño de fuente en un AlertDialog
- Cómo obtener el texto ellipsizado en un TextView
- Androide ClickableSpan intercepta el evento de clic
- Deteniendo texto de división a varias líneas en los períodos en direcciones web
- Android TextView measureText para el árabe
No estoy enterado de una manera directa simple de hacer esto pero usted debe poder poner algo junto usando el objeto de la pintura del TextView vía una llamada a TextView.getPaint ()
Una vez que tenga el objeto de pintura tendrá acceso a los FontMetrices subyacentes a través de una llamada a Paint.getFontMetrics () y tendrá acceso a otras funciones como Paint.measureText () Paint.getTextBounds () y Paint.getTextWidths () para acceder a la Tamaño real del texto visualizado.
Has intentado algo como ésto:
Layout layout = this.getLayout(); if (layout != null) { int line = layout.getLineForVertical(y); int offset = layout.getOffsetForHorizontal(line, x); // At this point, "offset" should be what you want - the character index }
Espero que esto ayude…