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

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

Solutions Collecting From Web of "Android的:如何确定在TextView触摸事件的位置的字符索引?"

我不知道一个简单的直接的方法来做到这一点,但你应该能够通过调用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 } 

希望这可以帮助…