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