【问题标题】:set two differemt color in one textview dynamically在一个文本视图中动态设置两种不同的颜色
【发布时间】:2013-10-19 12:37:13
【问题描述】:

你好朋友,我在单个文本视图中设置了两种不同的颜色,如下所示

我的代码如下

public static String getAnswers(List<Question> questions) {
    int question = 1;
    StringBuffer sb = new StringBuffer();
    for (Question q : questions){
        String d= "<font color=#292929>" +   sb.append("Q").append(question).append(") ").append(q.getQuestion()).append("? \n")+"</font>";
        String ss="<font color=#ce4e00>"+sb.append("Answer: ").append(q.getAnswer()).append("\n\n")+"</font>";

            AnswersActivity.results.setText(Html.fromHtml(d+ss),TextView.BufferType.SPANNABLE);
        question ++;
    }

    return sb.toString();
}

并且是我设置的文本视图

        mStringQustion = Utility.getAnswers(currentGame.getQuestions());

并得到如下输出

我该如何解决?

【问题讨论】:

  • 试试这个代码黑色#000000和橙色#FF4500
  • 为什么不为每一行添加一个TextView?更容易......?!
  • 查看this & this

标签: android


【解决方案1】:

我遇到了同样的问题,我像下面这样解决了它

您应该使用 ForegroundColorSpan

String firstString = "Book Title:";
String secondString = "Book Description";
String thirdString = "1.SubTitle";

        SpannableStringBuilder stringBuilder = new SpannableStringBuilder(
                firstString + "\n" + secondString + "\n" + thirdString);
        stringBuilder.setSpan(new RelativeSizeSpan(2.0f), 0,
                firstString.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        stringBuilder.setSpan(new StyleSpan(
                android.graphics.Typeface.BOLD_ITALIC), firstString.length(),
                firstString.length() + secondString.length() + 1,
                Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        stringBuilder.setSpan(
                new ForegroundColorSpan(Color.rgb(255, 0, 0)),
                firstString.length() + secondString.length() + 1,
                firstString.length() + secondString.length()
                        + thirdString.length() + 2,
                Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        AnswersActivity.results.setText.setText(stringBuilder);

您可以根据您的文字进行更改。

希望这会对你有所帮助。

【讨论】:

    【解决方案2】:

    这样试试

    String d = "&lt;![CDATA[ &lt;font color=#292929>" + sb.append("Q").append(question).append(")").append(q.getQuestion()).append("? \n")+"</font>";  
    String ss="<font color=#ce4e00>" + sb.append("Answer:").append(q.getAnswer()).append("\n\n")+"</font>]]>";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      相关资源
      最近更新 更多