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 ?

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…

  • TextView con color de fondo y espaciado entre líneas
  • Evitar que CAB aparezca en la selección de texto de EditText
  • Actualizar TextView cada N segundos?
  • Resaltar todas las palabras que se buscan a través de EditText
  • android append '...' al final textview
  • Android: ¿Cómo hago bloques no rompibles en TextView?
  • Agregar una vista de texto a un FrameLayout en una posición determinada
  • Pasa la variable entre la clase de no actividad a la clase de actividad de Android
  • ¿Cuál es la diferencia entre el estilo de TextView y los atributos android: textAppearance?
  • Android scroll down
  • ¿Cómo manejar texto largo en las preferencias de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.