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

标签 android textview paint measure spannable

我为 spannableText 设置了 span 并将其设置为 TextView。在我想要获取此文本的宽度和高度之后。但是结果没有考虑到由于设置的跨度导致的文本大小的变化。 下一个解决方案是工作不正确。

return textView.getPaint().measureText(text, 0, text.length());

最佳答案

你应该创建一个 StaticLayout (或 StaticLayout.Builder 对于 API > 23)与您的文本并获取文本的宽度和高度。如果您不希望系统为您换行,您应该为宽度参数提供 Integer.MAX_VALUE。

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

关于android - 多个spannable设置时如何获取文本宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18896712/

相关文章:

java - 当应用程序从 Android 上的任务管理器中被杀死时,代码将在哪里停止运行

android - 如果数据库值更改,如何更新 ListView?

Java图形paint方法执行流程

java - 如何将运动监听器分离到不同的类?

android - 在 GridView/ListView 中选择一个单元格时,它也会选择另一个单元格

android - 回到主要 Activity 的后退按钮引发 "Unfortunately Application has stopped"

android - RecyclerView 未显示(正在显示)

java - 如何在中间的 TextView (段落)中开始第一行 - android

android - 如何在 android 的 TextView 中显示双重格式的价格

java - Java GUI 中不显示工具栏