2011-04-08 53 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文檔 - 您可以使用自定義樣式創建一個。