我试图在TextView使用中设置背景Html.fromHtml().特别是,我想在第一个单词上设置背景.
我使用了以下代码:
Html.fromHtml("<font color='red'>("+someText+")</font>");
Run Code Online (Sandbox Code Playgroud)
它正在以文本颜色成功执行.但是我想改变背景颜色.
我怎样才能做到这一点?
试试这个:
TextView TV = (TextView) findViewById(R.id.mytextview01);
Spannable wordtoSpan = new SpannableString("hello hi. how are you?");
wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
wordtoSpan.setSpan(new BackgroundColorSpan(Color.RED), 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TV.setText(wordtoSpan);
Run Code Online (Sandbox Code Playgroud)
这是设置文本和背景颜色(后者用BackgroundColorSpan).
Android官方不支持通过HTML文本的背景颜色,但是我找到了一种解决方法。
String str = "<span style=\"background-color:#f3f402;\">" + TEXT TO HIGHLIGHT + "</span>";
textView.setText(Html.fromHtml(str, Html.FROM_HTML_MODE_LEGACY));
Run Code Online (Sandbox Code Playgroud)
但是,但是,以上代码仅适用于Nougat(API 24)及更高版本。因此,您必须在不同的Android版本中管理HTML,例如:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
String str = "<span style=\"background-color:#f3f402;\">" + TEXT TO HIGHLIGHT + "</span>";
textView.setText(Html.fromHtml(str, Html.FROM_HTML_MODE_LEGACY));
} else {
String str = "<font color='#f3f402'>" + TEXT TO HIGHLIGHT + "</font>";
textView.setText(Html.fromHtml(str));
}
Run Code Online (Sandbox Code Playgroud)
您可以从此处找到有关Android支持的HTML标签的更多信息:
| 归档时间: |
|
| 查看次数: |
5861 次 |
| 最近记录: |