在TextView
是通过Layout
来管理字符的位置
/**
* 获取TextView某一个字符的坐标
*
* @parms tv
* @parms index 字符下标
* @return 返回的是相对坐标
*/
private int getTextViewSelectionBottomY(TextView tv,int index) {
Layout layout = tv.getLayout();
Rect bound = new Rect();
int line = layout.getLineForOffset(index);
layout.getLineBounds(line, bound);
int yAxisBottom = bound.bottom;//字符底部y坐标
// int yAxisTop = bound.top;//字符顶部y坐标
// float xAxisLeft = layout.getPrimaryHorizontal(index);//字符左边x坐标
// float xAxisRight = layout.getSecondaryHorizontal(index);//字符右边x坐标
return yAxisBottom;
}
注意获取到的这个坐标是TextView
的相对坐标。
我们可以通过TextView.getScrollY()
获取textview
展示的内容最上面一行的坐标,这样的话我们就可以算出当前字符串的在屏幕上的坐标位置。
网友评论