首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >具有多种颜色文本的单个TextView

具有多种颜色文本的单个TextView
EN

Stack Overflow用户
提问于 2011-05-23 15:50:26
回答 15查看 140.3K关注 0票数 194

正如标题所说,我想知道是否有可能在单个textview元素中实现两种不同颜色的字符。

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2011-05-23 15:53:58

可以,如果使用htmlfont-color属性格式化String,则将其传递给Html.fromHtml(your text here)方法

代码语言:javascript
复制
String text = "<font color=#cc0029>First Color</font> <font color=#ffcc00>Second Color</font>";
yourtextview.setText(Html.fromHtml(text));
票数 355
EN

Stack Overflow用户

发布于 2013-02-18 21:00:51

您可以在没有HTML的情况下打印具有多种颜色的行,如下所示:

代码语言:javascript
复制
TextView textView = (TextView) findViewById(R.id.mytextview01);
Spannable word = new SpannableString("Your message");        

word.setSpan(new ForegroundColorSpan(Color.BLUE), 0, word.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

textView.setText(word);
Spannable wordTwo = new SpannableString("Your new message");        

wordTwo.setSpan(new ForegroundColorSpan(Color.RED), 0, wordTwo.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.append(wordTwo);
票数 181
EN

Stack Overflow用户

发布于 2013-02-21 23:16:09

您可以使用SpannableTextView应用效果

下面是我为TextView文本的第一部分着色的示例(同时允许您动态设置颜色,而不是像HTML示例那样将其硬编码为字符串!)

代码语言:javascript
复制
    mTextView.setText("Red text is here", BufferType.SPANNABLE);
    Spannable span = (Spannable) mTextView.getText();
    span.setSpan(new ForegroundColorSpan(0xFFFF0000), 0, "Red".length(),
             Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

在此示例中,您可以将0xFFFF0000替换为getResources().getColor(R.color.red)

票数 37
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6094315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档