作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我如何实现这样的东西:
我想在单个 TextView 中执行此操作。设置 TextView 的背景颜色不会完成这项工作。
我想应该可以用 spannable,但我不知道怎么做。
在 html 中我会这样做:
<html>
<body>
<span style="background:#CCCCCC;">first line <br /> second long line </span>
</body>
</html>
但我不知道如何在 Android 上执行此操作。最后一个选项是将文本拆分为两个 TextView ,并将每个 TextView 的背景颜色和高度设置为 wrap_content。但是由于文本长度/字数可以是动态的,我需要计算每个字的长度等。必须有更好的方法:)
最佳答案
像这样的东西应该可以完成工作
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 样式应该更容易
关于android - 仅在文本本身上具有背景颜色的 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17001574/
我想开发一个 Skype 机器人,它将用户名作为输入,并根据用户输入以相反的字符大小写表示hello username。简而言之,如果用户输入他的名字 james,我的机器人会回复他为 Hello J
我是一名优秀的程序员,十分优秀!