我为 spannableText 设置跨度并将其设置为 TextView。在我想得到这个文本的宽度和高度之后。但是结果并没有考虑到由于设置的跨度而导致的文本大小的变化。下一个解决方案是工作不正确。
return textView.getPaint().measureText(text, 0, text.length());
您应该使用您的文本创建一个StaticLayout(或API > 23 的StaticLayout.Builder)并获取文本的宽度和高度。如果您对系统为您换行不感兴趣,您应该为宽度参数提供 Integer.MAX_VALUE。
创建 StaticLayout 后,您可以使用 getWidth()、getHeight()、getLineWidth() 等函数来查找您要查找的信息。