Android Paint中measureText(),getTextBounds()

说明

在Android很多UI场景都有测量字符串的长度的要求,用Paint中的measureText(),getTextBounds()这2个方法是很常见的操作。下面就简单说说注意事项及遇到的坑。

对比

getTextBounds():获取宽高信息,结果放在Rect中,是API 30引入的新方法,使用时一定要适配,不然在低版本的手机上会报NoSuchMethodError错误;
measureText():只能获取到字符串的宽度,功能相对弱些,不过大部分场景也够了。

差别

measureText() 返回结果会略微大于 getTextBounds() 所得到的宽度信息,但实际上,这两个方法在具体调用时虽然都是不同的方法,但在 native 层的测量算法都是一致的,只不过在最后返回时,measureText() 会在左右两侧加上一些额外的宽度值,而 getTextBounds() 则是返回需要的最小宽度而已。

就说到这了,有什么不对的地方,欢迎指正,有什么没说全的,欢迎讨论留言

你可能感兴趣的:(Android Paint中measureText(),getTextBounds())