Android如何使用TextView.setText()着色字符串的一部分?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (20)

我希望通过.setText(“”)方法更改TextView视图的文本,同时也着色部分文本(或使其成为粗体,斜体,透明等)而不是其他部分。例如:

title.setText("Your big island <b>ADVENTURE!</b>";

我知道上面的代码是不正确的,但它有助于说明我想实现的目标。我将如何做到这一点?

提问于
用户回答回答于

你可以尝试下这段代码:

final SpannableStringBuilder sb = new SpannableStringBuilder("your text here");

// Span to set text color to some RGB value
final ForegroundColorSpan fcs = new ForegroundColorSpan(Color.rgb(158, 158, 158)); 

// Span to make text bold
final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); 

// Set the text color for first 4 characters
sb.setSpan(fcs, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 

// make them also bold
sb.setSpan(bss, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 

yourTextView.setText(sb);
用户回答回答于
你可以试试这行:
title.setText(Html.fromHtml("Your big island <b>ADVENTURE!</b>")); 

扫码关注云+社区