android – 在TextView中查找单个Character的精确坐标

前端之家收集整理的这篇文章主要介绍了android – 在TextView中查找单个Character的精确坐标前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前我正在使用paintObject.measureText(textCopy.substring(0,i)),同时迭代TextView文本的副本.例如,measureText(“abc”.substring(0,1))将给出相对x坐标’b’.我从layout.getLineTop()得到的y坐标.这对于非等宽字体的x坐标有效但不准确.我可以稍微校准一下,但在每个设备上它的工作方式不同.

我能想到的最好的解决方案是覆盖负责在屏幕上绘制TextView的类,并希望获得绘制到屏幕上的每个字符的坐标.

有谁知道我需要覆盖什么类来完成这个?或者其他一些创意解决方案?

解决方法

好吧,它似乎是Paint.measureText()或其他更深层次的错误.但我终于找到了解决方法
layout.getPrimaryHorizontal(int offset)

这很容易.您只需使用其使用的文本长度迭代布局.

它将返回行位置的字符REGARDLESS的x.所以我仍然从layout.getLineTop()得到的行.顺便说一句,如果你使用layout.getLineTop(),请注意有一些奇怪的行为,可能是一个bug.我已提交错误报告here.

猜你在找的Android相关文章