關于TextView
TextView是Android開發中最最常見的控件之一,在API記錄的屬性有很多,但實際開發中,也遇到很多有趣的需求,值得去嘗試,所以記錄下來,既可以給大家提供參考,同時自己需要時候也方便查找.
最近開發過程中有個小小的知識點,就是TextView顯示的內容需要分段顯示不同的顏色,如下圖所示

一般有三種實現方式
下面分別來簡單介紹下三種方法
多個TextVew
使用SpannableString
想必用過的人都知道,比較好的一點是SpannableString可以精確控制一個長長的字符串中第幾個到第幾個字符的樣式
SpannableString spannableString = new SpannableString("jakjfkajfjaj");//設置顏色spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FE6026")), 3, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//設置字體大小,true表示前面的字體大小20單位為dipspannableString.setSpan(new AbsoluteSizeSpan(20, true), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//設置鏈接spannableString.setSpan(new URLSpan("www.baidu.com"), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//設置字體,BOLD為粗體spannableString.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);以上只是列舉了幾個常見的用法,更多的可以參考android.text.style包下面的幾個類

不知道大家看出上面的SpannableString的局限了沒有,沒錯,SpannableString的優點在于控制得精細,缺點也是在這。我們使用SpannableString的時候必須指定樣式使用的字符下標,那如果我們的字符串不是固定長度的呢?
使用Html
如果使用場景是字符串長度不固定的,比如需要服務端的數據來填充的
"首付:" + data1 + "月供:" + data2
服務端返回的數據長度不固定的話,用SpannableString就尷尬了,這時候可以考慮用Html
Html使用格式比較簡單,需要用到font標簽,具體的話看下面的例子
//首先是拼接字符串String content = "<font color=/"#FE6026/">" + data + "</font>"//然后直接setText()TextView tvContent = (TextView) view.findViewById(R.id.tvContent);tvContent.setText(Html.fromHtml(content));
以上就是TextView分段顯示不同樣式字符串的方法,希望對大家有用
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答