大家都知道OSC的網頁動態顯示是需要多種顏色的才能達到需要的展示效果,如下圖:
在 iOS上官方SDK是不提供如此強大的富文本控件的,我在開發的過程中首先找到的是這個FTRichTextView第三方控件,雖然它是以類似HTML 的方式來形成富文本的,但是該控件在UITableView的列表顯示性能表現相當糟糕,很容易就不顯示完全或者壓根就不顯示,但是如果在 UITableView中使用UIWebView來顯示的話,雖然富文本的目標可以達到,但是大家想想一個頁面5,6個WebView會卡成什麼樣呢?
後來我找到了 RTLabel 這套控件,使用方法類似HTML文本格式,效果如下圖
而在Windows Phone開發上,因爲原生的TextBlock控件就支持多種樣式的Run疊加,所以WP7平臺好處理多了,我們只需要針對不同顏色的文本添加不同樣式的Run就能達成下圖的效果
同樣在Android開發上,Android SDK的TextView也是支持富文本顯示的,將普通的字符串轉換爲SpannableString就可以了
public static SpannableString parseQuoteSpan(String name,String body){ SpannableString sp = new SpannableString("回覆:"+name+"\n"+body); //設置用戶名字體加粗、高亮 sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 3, 3+name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); sp.setSpan(new ForegroundColorSpan(Color.parseColor("#0e5986")), 3, 3+name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return sp; }
效果如下圖
如果大家有任何疑問,請在下面的回帖中討論吧
PS:
OSC Android客戶端下載地址:http://www.oschina.net/uploads/osc.apk
OSC iPhone客戶端下載地址:http://www.oschina.net/uploads/osc.ipa
OSC Windows Phone客戶端下載地址:http://www.oschina.net/uploads/osc.xap
轉載:http://www.oschina.net/question/213217_59127