android程序ScrollView里有TextView,知道指定的字符在Text中的偏移量,如何直接跳转到该位置

android程序ScrollView里有TextView,知道指定的字符在Text中的偏移量,如何直接跳转到该位置或者说如何计算该字符显示到TextView中是第几行,... android程序ScrollView里有TextView,知道指定的字符在Text中的偏移量,如何直接跳转到该位置

或者说如何计算该字符显示到TextView中是第几行,如何计算该位置ScrollView的X和Y值

谢谢
展开
 我来答
yameideya
2014-02-07 · 超过35用户采纳过TA的回答
知道答主
回答量:68
采纳率:100%
帮助的人:81.7万
展开全部
int[] location = new int[2];
TextView.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
获取控件的位置 在加上字符在TextView中的偏移量就是字符的坐标了
追问
关键是我TextView中的文本特别长,而且TextView折行和空行都很不规律,没法简单用偏移量计算出坐标
追答
你说的偏移量是字符的位置说 ,,我以为你说的是坐标哦!
这个其实和x坐标没什么关系 只要算出y坐标就收了
TextView.getLayout() //这个需要在TextView执行onDraw后调用,,如果得到为空就用post执行
layout有getLineEnd(int l)参数是行数 循环调用从0开始 得到每一行最后一个字符的position然后和你的字符位置比对 这样可以得到你字符的行数,,然后TextView.getpaddingTop+layout.getLineHeight()*你刚刚算出的行数即可得到字符在TextView的Y偏移 加上控件的Y坐标就是字符的Y坐标
yugi111
2014-02-07 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
public final void smoothScrollTo (int x, int y) 
Since: API Level 

Like scrollTo(int, 
int), but scroll smoothly instead of immediately.
Parameters
xthe position where to scroll on the X axis    
ythe position where to scroll on the Y axis
更多追问追答
追问
我的问题在于如何得到这个x和y,并不是滚动的函数

谢谢
追答
写个onscroll事件呀,然后从里面获取组件的xy,然后就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式