我正在开发一款Android应用。在我的应用中,我尝试在TextView
中为文本设置不同的颜色。我是指TextView
中的多种颜色。我正在尝试使用Html.fromHtml
来执行此操作。但它没有用。请参阅下面的代码:
TextView
xml:
<TextView
android:paddingTop="@dimen/general_line_spacing"
android:paddingBottom="@dimen/general_line_spacing"
android:textSize="@dimen/mm_item_title_size"
android:textColor="@color/colorPrimaryText"
android:id="@+id/mm_item_tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
这就是我将文字设置为TextView
String title = post.getTitle();
if(title!=null && title.length()>MAX_TITLE_LENGTH)
{
title = title.substring(0, MAX_TITLE_LENGTH);
title = title + "<font color='color:#2bb1ff'> .... read more</font>";
}
viewHolder.tvTitle.setText(Html.fromHtml(title));
如您所见,我使用html设置字体颜色。但它没有用。 &#34;阅读更多&#34;附加的文本始终与其他字母颜色相同。所以我也尝试过这种方式。
title = title + "<![CDATA[<font color='color:#2bb1ff'> .... read more</font>]]>";
它不起作用。这也是:
title = title + "<span style=color:'#2bb1ff'> .... read more</span>";
那么如何在TextView
中为文本设置多种颜色呢?为什么我的代码不起作用?我该如何解决?
答案 0 :(得分:3)
试试这个
title = title + "<font color=#2bb1ff> .... read more</font>";
答案 1 :(得分:1)
尝试使用它:
title = title + "<span style='color: #2bb1ff;'> .... read more</span>";
答案 2 :(得分:1)
像这样使用Spannable:
SpannableStringBuilder builder = new SpannableStringBuilder();
SpannableString str1 = new SpannableString(titleText);
builder.append(str1);
SpannableString str2 = new SpannableString("....read more");
str2.setSpan(new ForegroundColorSpan(ContextCompat.getColor(getActivity(), R.color.colorGrey)), 0, str2.length(), 0);
builder.append(str2);
viewHolder.tvTitle.setText(builder);
答案 3 :(得分:0)
Hope this will help you:
title = title + "![CDATA[<font color=#2bb1ff> .... read more</font>]]"
注意:请不要在代码中使用静态文本。尝试在string.xml文件中使用它,然后从那里获取它。 例如:
<string name="read_more"><![CDATA[<font color=#2bb1ff> .... read more</font>]]></string>
title = title + activity.getResources().getString(R.string.read_more);
答案 4 :(得分:0)
我已经在我的应用程序中检查了代码的工作情况。
title = title + "<font color='#000'> .... read more</font>";
txt_view.setText(Html.fromHtml(title));
请仔细检查您的代码可能是您的标题为空。