使用html.fromhtml到Android中的TextView不起作用



我正在开发一个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);

最新更新