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

android – 在TextView中查找单个Character的精确坐标,第1张

概述目前我正在使用paintObject.measureText(textCopy.substring(0,i)),同时迭代TextView文本的副本.例如,measureText(“abc”.substring(0,1))将给出相对x坐标’b’.我从layout.getLineTop()得到的y坐标.这对于非等宽字体的x坐标有效但不准确.我可以稍微校准一下,但在每个设备上它的工作方式不同. 我能想到 目前我正在使用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 – 在TextView中查找单个Character的精确坐标全部内容,希望文章能够帮你解决android – 在TextView中查找单个Character的精确坐标所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1139161.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存