【OSC手機App技術解析】- 富文本列表的展示

大家都知道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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章