TextView与背景颜色仅在文本本身

时间:2013-06-08 16:30:50

标签: android textview

我如何实现这样的事情:

enter image description here

我想在单个TextView中执行此操作。设置TextView的背景颜色不起作用。

我想应该可以使用spannable,但我不知道如何。

在html中我会这样做:

<html>
<body>
        <span style="background:#CCCCCC;">first line <br /> second long line </span>
</body>
</html>

但我不知道如何在Android上做到这一点。 最后一个选项是将文本拆分为两个文本视图,并将每个textviews背景颜色和/ height设置为wrap_content。但由于单词的文本长度/计数可以是动态的,我需要计算每个单词的长度等。必须有更好的方法:)

1 个答案:

答案 0 :(得分:13)

这样的事情应该做的工作

String myString = "first line\nsecond long line";
Spannable spanna = new SpannableString(myString);
spanna.setSpan(new BackgroundColorSpan(0xFFCCCCCC),0, myString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);           
myTextView.setText(spanna);

如果你想将它保存在html中,你可以使用WebView并在那里加载你的html,使用css应该更容易使用样式,我认为