如何在多个spannable设置时获取文本宽度

Rad*_*kyi 8 android paint textview measure spannable

我为spannableText设置了span并将其设置为TextView.在我想要获得此文本的宽度和高度之后.但是结果没有考虑由于设定的跨度而导致的文本大小的变化.下一个解决方案是错误的.

return textView.getPaint().measureText(text, 0, text.length());
Run Code Online (Sandbox Code Playgroud)

Siy*_*med 0

您应该使用文本创建一个StaticLayout(或API > 23 的StaticLayout.Builder)并获取文本的宽度和高度。如果您不希望系统为您换行文本,则应为宽度参数指定 Integer.MAX_VALUE。

创建 StaticLayout 后,您可以使用 getWidth()、getHeight()、getLineWidth() 等函数来获取您要查找的信息。