Android 多行纯文本背景

Posted

技术标签:

【中文标题】Android 多行纯文本背景【英文标题】:Android Multiline text-only background 【发布时间】:2021-12-13 21:48:00 【问题描述】:

我想在我的 android 项目中实现这样的文本视图:

文字可以是多行并有背景,但背景只能覆盖文字,不能覆盖剩余的空白区域。

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

看起来您的突出显示有圆角。如果您确实想要圆角,请查看 Drawing a rounded corner background on text,这是 Florina Muntenescu 的 Medium 帖子。

当您的示例填充该空间时,该解决方案在行之间留下了一些空间,但我认为您可以修改代码以填充它。

【讨论】:

谢谢,这篇文章似乎足够接近了 ?【参考方案2】:

你可以使用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

【讨论】:

这是否可以灵活地支持圆角和填充? @Mousa 不,没那么容易,你需要使用画布自定义

以上是关于Android 多行纯文本背景的主要内容,如果未能解决你的问题,请参考以下文章

Android 并在 TableRow 的 TextView 中显示多行文本

复制到图库的Android透明图片获得纯黑色背景

怎么固定多行EditText上每行文本的长度?

Android:BottomSheetDialog中的多行文本EditText

解析纯文本并在android中生成csv

如何通过在android中按下按钮来添加纯文本视图?