Android 多行纯文本背景
Android Multiline text-only background
我想在我的 Android 项目中实现这样的文本视图:
文字可以多行,有背景,但背景必须只覆盖文字,不能覆盖剩余的空白区域。
我怎样才能做到这一点?
您可以使用 BackgroundColorSpan
设置 TextView 从起始索引到结束索引的背景颜色:
val textView = findViewById<TextView>(R.id.textView)
val spannable = SpannableString(textView.text.toString())
spannable.setSpan(
BackgroundColorSpan(Color.parseColor("#C8ECFD")),
0,
spannable.length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
)
textView.text = spannable
看起来你的突出显示是圆角的。如果您确实想要圆角,请查看 Drawing a rounded corner background on text,Florina Muntenescu 的中 post。
该解决方案在行之间留下了一些 space,而您的示例填充了 space,但我认为您可以修改代码以填充它。
我想在我的 Android 项目中实现这样的文本视图:
文字可以多行,有背景,但背景必须只覆盖文字,不能覆盖剩余的空白区域。
我怎样才能做到这一点?
您可以使用 BackgroundColorSpan
设置 TextView 从起始索引到结束索引的背景颜色:
val textView = findViewById<TextView>(R.id.textView)
val spannable = SpannableString(textView.text.toString())
spannable.setSpan(
BackgroundColorSpan(Color.parseColor("#C8ECFD")),
0,
spannable.length,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
)
textView.text = spannable
看起来你的突出显示是圆角的。如果您确实想要圆角,请查看 Drawing a rounded corner background on text,Florina Muntenescu 的中 post。
该解决方案在行之间留下了一些 space,而您的示例填充了 space,但我认为您可以修改代码以填充它。