设置TextView的文本颜色部分?

时间:2015-11-25 09:37:41

标签: android textview

我想使用Html.fromHtml()方法将颜色设置为文本的一部分。

我的代码是

String name =  "<font color=\"#B034A2\">" + notificationListBean.getUsername() + "</font>"
textview.setText(Html.fromHtml(name));

但是textcolor没有改变。

我也尝试了这个,但这也没有用

Spannable wordtoSpan = new SpannableString(name);        
wordtoSpan.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.noti_color)), 0, name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

textview.setText(wordtoSpan);

我应该做些什么改变?

3 个答案:

答案 0 :(得分:1)

尝试:

textView.setText(Html.fromHtml(name), TextView.BufferType.SPANNABLE);

答案 1 :(得分:1)

昨天我遇到了与Html.fromHtml()相同的问题所以我在这里使用了spannable字符串是我将如何编辑你的代码

SpannableStringBuilder builder = new SpannableStringBuilder();

                SpannableString carOwnerSpannable= new SpannableString("Mayuri");
                carOwnerSpannable.setSpan(new ForegroundColorSpan(ContextCompat.getColor(JobDetailTabbedActivity.this,R.color.colorAccent)), 0, carOwnerName.length(), 0);
                builder.append(carOwnerSpannable);

                builder.append(" | LastName:Joshi");

                textView.settext(builder);
如果这不起作用,请在下方发表评论。

预期产出:

Mayuri(绿色(我的颜色重音为绿色))|姓氏:Joshi(白色)

<color name="colorAccent">#1AB394</color>添加到colors.xml

答案 2 :(得分:0)

Spannable wordtoSpan = new SpannableString(name);        
wordtoSpan.setSpan(new ForegroundColorSpan(context.getResources().getColor(R.color.noti_color)), 0, name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textview.setText(wordtoSpan);

您刚刚使用的此代码应该可以使用。我把颜色都涂了。用简单的颜色测试它。固定范围:

wordtoSpan.setSpan(new ForegroundColorSpan(Color.Red), 0, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);