【问题标题】:How to change color of individual letters in textView?如何更改 textView 中单个字母的颜色?
【发布时间】:2014-11-26 11:51:03
【问题描述】:

我正在像这样在 android 中显示文本:

TextView textview p new TextView(this);
textview.setMovementMethod(new ScrollingMethod());
textview.setText("Today: 2\nTomorrow: 8\nNext two weeks: 45");
textview.setTextSize(16);
textview.setTypeFace(null, TypeFace.BOLD);
setContentView(textview);

我想将文本中的 2、8 和 45 设为绿色,而将其余部分设为黑色。我知道如何为所有文本而不是单个字符执行此操作。有人可以帮忙吗?我查看了其他类似的问题,但似乎没有人像我在这里那样设置 textview。

【问题讨论】:

标签: android textview


【解决方案1】:

你可以试试这个:

TextView textview p new TextView(this);
textview.setMovementMethod(new ScrollingMethod());
    textview.setText(Html.fromHtml("Today: <font color=green>2</font>\nTomorrow: <font color=green>8</font>\nNext two weeks: <font color=green>45</font>");
textview.setTextSize(16);
textview.setTypeFace(null, TypeFace.BOLD);
setContentView(textview);

这会将绿色设置为 2,8,45。类似地,您可以将任何 html 标签用于 textview 文本。 希望这会对你有所帮助。

【讨论】:

  • hmm 根本没有用,除了更改代码之外,我还应该做点别的吗?
【解决方案2】:

使用SpannableString 并将ForegroundColorSpans 添加到文本中。您必须找到要跨越的字符/子字符串的索引,以便您可以调用addSpan

SpannableString spannedText = new SpannableString(originalText);
int start = ..., end = ...;
spannedText.addSpan(new ForegroundColorSpan(Color.GREEN), start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多