【发布时间】:2012-08-07 23:33:06
【问题描述】:
我有一个TextView 和许多ClickableSpan。
点击ClickableSpan时,我必须在屏幕上获取坐标(以在他的位置显示自定义View)。
问题是我不知道该怎么做。 ClickableSpan 的 onClick() 方法在参数中为我提供了 View,TextView 包含 ClickableSpan。
我已使用以下方法获取 TextView 中的字符位置,但我不知道如何将其转换为获取文本屏幕上的 x/y 位置。
@Override
public void onClick(View v){
SpannableString completeText = (SpannableString)((TextView) v).getText();
Log.v("characters position", completeText.getSpanStart(this) + " / " + completeText.getSpanEnd(this));
}
提前感谢您的帮助!
编辑:我想获取 ClickableSpan 的整个坐标及其大小,目的是在文本的底部中心显示我的自定义视图。 onTouch 方法会给我手指位置,而不是整个文本坐标。所以,用这个方法,我就不会有中间的文字了。
【问题讨论】:
-
重写 onTouch() 并使用 event.getX(), event.getY()?
-
感谢您的回答!不幸的是,我发现这种方法非常……丑陋!我希望有更好的解决方案。此外,我忘记给出另一个精度:我想获得 ClickableSpan 的整个坐标及其大小,目的是在文本的底部中心显示我的自定义视图。 onTouch 方法会给我手指位置,而不是整个文本坐标。所以,用这个方法,我就不会有中间的文字了。还有其他想法吗?
标签: android textview position clickable