多格式TextView

时间:2011-04-08 04:35:00

标签: android android-layout

我正在尝试以下列形式对程序进行评论的布局:

enter image description here

我希望USER_NAME处于Bold状态,DATE处于Enphasis状态(红色部分应该正常,我不希望它变红)。我的问题来自红色部分。我不能使用布局来显示这样的冷却,我已经能够得到:

enter image description hereenter image description here

有没有办法让评论像我正在展示的那样运作。我想过一个多格式的textView,它可以吗?

如果无法获得这样的评论,那就说这是不可能的。

2 个答案:

答案 0 :(得分: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文档 - 您可以使用自定义样式创建一个。

答案 1 :(得分:0)

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

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

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