studio programacion móviles libros libro desarrollo desarrollar curso aprende aplicaciones android textview fontmetrics ontouchlistener

programacion - Android: ¿Cómo determinar el índice de caracteres de la posición de un evento táctil en TextView?



manual de programacion android pdf (2)

Tengo un TextView con un OnTouchListener . Lo que quiero es el índice de caracteres al que apunta el usuario cuando obtengo el MotionEvent . ¿Hay alguna manera de llegar a las métricas de fuentes subyacentes de TextView ?


No conozco una forma simple y directa de hacerlo, pero debería poder armar algo utilizando el objeto Paint de TextView mediante una llamada a TextView.getPaint ()

Una vez que tenga el objeto Paint, tendrá acceso a las 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 al tamaño real del texto mostrado.


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...