说明
在Android很多UI场景都有测量字符串的长度的要求,用Paint中的measureText(),getTextBounds()这2个方法是很常见的操作。下面就简单说说注意事项及遇到的坑。
对比
getTextBounds():获取宽高信息,结果放在Rect中,是API 30引入的新方法,使用时一定要适配,不然在低版本的手机上会报NoSuchMethodError错误;
measureText():只能获取到字符串的宽度,功能相对弱些,不过大部分场景也够了。
差别
measureText() 返回结果会略微大于 getTextBounds() 所得到的宽度信息,但实际上,这两个方法在具体调用时虽然都是不同的方法,但在 native 层的测量算法都是一致的,只不过在最后返回时,measureText() 会在左右两侧加上一些额外的宽度值,而 getTextBounds() 则是返回需要的最小宽度而已。
网友评论