在TextView中找到文本位置

时间:2013-08-05 07:10:01

标签: android textview

如何通过知道它的索引来计算TextView中字母的位置X,Y? 我需要这个来显示一个触摸的字母或单词的图形指针,但我不知道如何找到正确的位置。

2 个答案:

答案 0 :(得分:1)

这可以帮到你:

我不知道一个简单的直接方法,但你应该能够通过调用TextView

使用TextView.getPaint()..的Paint对象放一些东西。

拥有paint对象后,您可以通过调用FontMetrices访问基础Paint.getFontMetrics(),并可以访问其他功能,例如Paint.measureText() Paint.getTextBounds()和{ {1}}用于访问显示文本的实际大小...

答案 1 :(得分:1)

试试这个:

Rect bounds = new Rect();
Paint textPaint = textView.getPaint();
textPaint.getTextBounds(text,0,text.length(),bounds);
int height = bounds.height();
int width = bounds.width();

那应该给你高度和宽度。为每个单独的字符创建一个具有不同值的高度/宽度数组,如果使用循环和ASCII字符代码,则可以快速完成。然后,您可以添加每个角色的宽度,直到找到所需的宽度。

但我认为这是一种更简单的方法。而不是TextView,尝试具有多个textview的LinearLayout。如果对每个字符使用textview,则可以使用getX和getY。