多色字符串(android)

时间:2014-11-28 08:56:45

标签: android html string

我有一个字符串,我希望组件采用绿色。不幸的是,我尝试了各种方法而没有取得任何结果。也许你们中的某些人可以帮助我。

这是我试过的: 选项1:

String b = "<font color = '#82FA58'>" + Integer.toString(deal.megadeal) + " " + mStrings.getString(AppStrings.textdeal) + "</font>";
ty.redeemText.setText(a + " " + Html.fromHtml(b)  +  " " + c);

选项2:

setText(a + " " + Html.fromHtml("<font color = '#82FA58'> " + b + "</font>")  + " " + c);

3 个答案:

答案 0 :(得分:2)

你的第二个选择对我有用。

尝试一步一步,只用颜色简单的字符串,然后添加其他文本或变量。

setText(Html.fromHtml("<font color='#522D03'>Hi</font>"));

如果不起作用,请尝试:

Html.fromHtml("<![CDATA[<font color='#522D03'>Hi</font>]]>");

如果以上其中一项有效,请告诉我。

答案 1 :(得分:2)

您可以将所有Html字符串保存为一个并使用BufferType.SPANNABLE。

String b= partOfString + "<font color = '#82FA58'>" + greenstring + "</font>" + otherPartOfString;
yourTextView.setText(Html.fromHtml(b), TextView.BufferType.SPANNABLE);

答案 2 :(得分:1)

您可以使用SpannableStringBuilder

String megaDeal = Integer.toString(deal.megadeal);
String textDeal = mStrings.getString(AppStrings.textdeal);
String leftText = a + " ";
String rightText = " " + c;
String middleText = megaDeal + " " + textDeal;
SpannableStringBuilder span = new SpannableStringBuilder( leftText +  middleText + rightText );
span.setSpan(new ForegroundColorSpan(Color.parseColor("#82FA58")), leftText.length(), leftText.length() +  middleText.length(), SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
ty.redeemText.setText(span);