0

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

4

2 回答 2

1

愿这对您有所帮助:

我不知道有一种简单的直接方法可以做到这一点,但是您应该能够使用TextView通过调用的 Paint 对象将某些东西放在一起TextView.getPaint()..

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

于 2013-08-05T07:39:39.343 回答
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 字符代码,您可以快速完成。然后,您可以添加每个字符的宽度,直到达到您想要的宽度。

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

于 2013-08-05T07:43:45.147 回答