Android的:如何确定在TextView触摸事件的位置的字符索引?

我有一个OnTouchListenerTextView 。 我想要的是当我得到MotionEvent时用户指向的字符索引。 有没有办法得到TextView的基础字体指标?

  • Ellipsize对于具有任意最大高度的多行TextView无法正常工作
  • 如何设置字体重量轻,在Android中定期
  • 如何find每行android字符数的字符?
  • 屏幕中央的TextView
  • 以编程方式更改Button的drawableLeft
  • 在Android上的TextView下绘制线条
  • 如何限制AutoCompleteTextView下拉closures?
  • 用TextView设置希伯来语文本的Android设置?
  • 我不知道一个简单的直接的方法来做到这一点,但你应该能够通过调用TextView.getPaint()来使用TextView的Paint对象放在一起。

    一旦你有了绘画对象,你就可以通过调用Paint.getFontMetrics()来访问底层的FontMetrices,并且可以访问Paint.measureText(),Paint.getTextBounds()和Paint.getTextWidths()等其他函数来访问显示文本的实际大小。

    你有没有尝试过这样的事情:

     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 } 

    希望这可以帮助…