• 首页
  • 发布文章
  • 我的文章
  • 我的收藏
  • 设置
  • 退出

Android界面] 取到TextView指定字符X Y坐标_getprimaryhorizontal_阿道夫小狮子的博客-CSDN博客

亮 2023-06-08 17:05:08
收藏
编辑
上架
下架

http://www.eoeandroid.com/thread-317366-1-1.html转载

取得TextView 的layout就可以了  layout里面包含各种获取字符位置行数 列数 等的 方法

不过你要先知道你需要的字符在TextView 是第几个字符  然后用layout.getLineForOffset得到所在行数 再用 layout.getLineBounds得到 这一行的外包矩形(Rect) 这样 这个字符的顶部Y坐标就是rect的top 底部Y坐标就是rect的bottom

要得到这个字符的左边X坐标 用layout.getPrimaryHorizontal 得到字符的右边X坐标用layout.getSecondaryHorizontal

int position = 第几个字符
Layout layout = textView.getLayout();Rect bound = new Rect();
int line = layout.getLineForOffset(position);

layout.getLineBounds(line, bound);

yAxisTop = bound.top;//字符顶部y坐标
yAxisBottom = bound.bottom;//字符底部y坐标

xAxisLeft = layout.getPrimaryHorizontal(position);//字符左边x坐标
xAxisRight = layout.getSecondaryHorizontal(position);//字符右边x坐标

本文转自 https://blog.csdn.net/u013721227/article/details/79791921#:~:text=%E5%8F%96%E5%BE%97TextView%20%E7%9A%84layout%E5%B0%B1%E5%8F%AF%E4%BB%A5%E4%BA%86%20layout%E9%87%8C%E9%9D%A2%E5%8C%85%E5%90%AB%E5%90%84%E7%A7%8D%E8%8E%B7%E5%8F%96%E5%AD%97%E7%AC%A6%E4%BD%8D%E7%BD%AE%E8%A1%8C%E6%95%B0%20%E5%88%97%E6%95%B0%20%E7%AD%89%E7%9A%84%20%E6%96%B9%E6%B3%95%20%E4%B8%8D%E8%BF%87%E4%BD%A0%E8%A6%81%E5%85%88%E7%9F%A5%E9%81%93%E4%BD%A0%E9%9C%80%E8%A6%81%E7%9A%84%E5%AD%97%E7%AC%A6%E5%9C%A8TextView,%E6%98%AF%E7%AC%AC%E5%87%A0%E4%B8%AA%E5%AD%97%E7%AC%A6%20%E7%84%B6%E5%90%8E%E7%94%A8layout.getLineForOffset%E5%BE%97%E5%88%B0%E6%89%80%E5%9C%A8%E8%A1%8C%E6%95%B0%20%E5%86%8D%E7%94%A8%20layout.getLineBounds%E5%BE%97%E5%88%B0%20%E8%BF%99%E4%B8%80%E8%A1%8C%E7%9A%84%E5%A4%96%E5%8C%85%E7%9F%A9%E5%BD%A2%EF%BC%88Rect%29%20%E8%BF%99%E6%A0%B7%20%E8%BF%99%E4%B8%AA%E5%AD%97%E7%AC%A6%E7%9A%84%E9%A1%B6%E9%83%A8Y%E5%9D%90%E6%A0%87%E5%B0%B1%E6%98%AFrect%E7%9A%84top%20%E5%BA%95%E9%83%A8Y%E5%9D%90%E6%A0%87%E5%B0%B1%E6%98%AFrect%E7%9A%84bottom,如有侵权,请联系删除。