Paint 类中有一个方法:Paint.getTextBounds(),它返回Rect
被一些文本占用。但根据这个答案,它返回的内容与 TextView 的宽度/高度不同。
Q1:有没有办法使用Paint.getTextBounds()Rect
返回的 TextView 的宽度和高度?
请注意,我确实需要准确地知道宽度/高度。我很高兴知道 2-3% 的可能误差的上限rect
,但它不能大于 TextView 的界限(并且应该适用于不依赖于屏幕分辨率和像素密度的任何手机)
Q2:有没有其他QUICK方法来确定一些指定textSize的文本的宽度和高度?
我知道,宽度可以由Paint.measureText()确定,但这不会返回高度。可以通过StaticLayout
使用文本创建 new 然后调用StaticLayout.getHeight()来确定高度,但这太慢了。我需要更快的东西。
所有这一切的背景是AutoFitTextView
通过放大或缩小文本大小来自动将文本适应其边界,并且它应该快速做到这一点,因为会有许多这样AutoFitTextView
的 s 非常快速地动态更改。