使用Html设置颜色,在Android中从Html到TextView不起作用

mcdcgff0  于 2023-01-11  发布在  Android
关注(0)|答案(5)|浏览(192)

我正在开发一个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中为文本设置多种颜色呢?

jtjikinw

jtjikinw1#

试试这个

title = title + "<font color=#2bb1ff> .... read more</font>";
bvhaajcl

bvhaajcl2#

试着这样使用它:

title = title + "<span style='color: #2bb1ff;'> .... read more</span>";
5kgi1eie

5kgi1eie3#

按如下方式使用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);
zvms9eto

zvms9eto4#

我已签入代码正常工作的应用程序。

title = title + "<font color='#000'> .... read more</font>";
txt_view.setText(Html.fromHtml(title));

请仔细检查您的代码,可能是您的标题为空。

xienkqul

xienkqul5#

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);

相关问题