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

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

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

我怎样才能做到这一点?

【问题讨论】:

    标签: android android-layout android-xml


    【解决方案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 不,没那么容易,你需要使用画布自定义
    猜你喜欢
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    相关资源
    最近更新 更多