我正在开发一个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设置字体颜色。但这是行不通的。"阅读更多"附加的文本与其他字母始终是相同的颜色。所以我也尝试了。
title = title + "<![CDATA[<font color='color:#2bb1ff'> .... read more</font>]]>";
它不起作用。这也:
title = title + "<span style=color:'#2bb1ff'> .... read more</span>";
那么如何将多种颜色设置为TextView
中的文本?
尝试此
title = title + "<font color=#2bb1ff> .... read more</font>";
尝试这样使用:
title = title + "<span style='color: #2bb1ff;'> .... read more</span>";
使用这样的跨度:
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);
我已经在我的应用程序中检查了该代码的工作。
title = title + "<font color='#000'> .... read more</font>";
txt_view.setText(Html.fromHtml(title));
请在您的代码中仔细检查您的标题是null。
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);