2011-04-08 44 views
0

我想对在以下形式的编程'的意见进行布局:多格式化的TextView

enter image description here

我想以粗体显示的USER_NAME,并在Enphasis日期(红色部分应该是正常的,我不希望它红)。我的问题伴随着红色部分。我不能得到要显示这样使用布局的cooment,我已经能够得到:

enter image description hereenter image description here

有没有什么办法让注释工作就像一个我所展示。我想过一个多格式的textView,它是否可行?

如果得到这样的评论是不可能的,那就说它是不可能的。

回答

0

如果HTML标记是好的,您可以使用带有loadData的WebView,或者也可以深入研究Spannable文本的领域。

我自己并没有使用Spannable文本,但本质上它允许您将属性(例如样式&颜色)附加到TextView中的文本部分。

相关的方法是TextView.setText(CharSequence text, TextView.BufferType type) BufferType为SPANNABLE。我见过的文档是....迷惑。

2

一个可能的解决方案是将两个TextView一个接一个放入Linear布局,然后使用SpannableStringBuilder将格式化的文本分配到第一个视图。

SpannableStringBuilder sb = new SpannableStringBuilder(); 
sb.append(text); 
sb.setSpan(createBoldSpan(), 0, lengthOf(userName), 
      Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 
firstTextView.setText(sb, TextView.BufferType.NORMAL); 

createBoldSpan应该返回TextAppearanceSpan

private TextAppearanceSpan userNameSpanInBold(String userName) { 
    return new TextAppearanceSpan(...); 
} 

请遵循TextAppearanceSpan API文档 - 您可以使用自定义样式创建一个。