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
?
- Cómo eliminar la fila de la tabla en el diseño de la tabla en android
- Android: setText () para TextView en PopupWindow no funciona
- El helado de helado de elipse añade [
- Envolvente de texto de Android
- Imágenes de ImageGetter de Android superpuestas al texto
- Problema de espaciado de diálogo de alerta con texto y editar texto
- ¿Cómo dejar que un TextView tenga varias líneas?
- Android enlace activo de url en TextView
- EditText Alternativas en un Widget? Tiene que haber una forma
- Agregue textViews dinámicamente a un linearLayout
- Obtener texto vinculado de textview-android ...?
- TextView negrita a través de un archivo xml?
- Incluir un TextView y anular el texto
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…