問題描述
在安卓開發(fā)中,有時候需要一個Textview展示不同的顏色,可能是為了醒目,或者一些其他的原因。之前在開發(fā)的時候?qū)戇^,這次在項目中再次遇到。記錄一下。以防下次再遇到的時候還要再去搜。
解決方案
一、
使用SpannableStringBuilder 、SpannableString,具體api可以搜索查看。該方法是通過設(shè)置字符串下標(biāo)的方式,比如(0,5)則是字符串的0到5顯示為某種樣式。此方法有個局限性,就是在國際化的APP中,因為不同語言的字符串長度是不同的。沒法設(shè)置固定的下標(biāo)。所以在這種情況下使用方法二。
二、
通過Html.formHtml的方式
TextView tv=findviewbyId();
String text="<font color='#999999'><b>" + "--" + "</b></font>"; //粗體效果<b>
tv.setText(Html.fromHtml(text));
String text="<font color='#999999'>" + "--" + "</font>"; //不加粗
包括一些粗體效果,字體的大小都是可以設(shè)置的。
然后如果把這些代碼寫在代碼里,看起來會很亂。可以通過占位符的方式,將其寫在string文件.通過ALT+回車的萬能提示??梢钥吹絊tring.format()方法。就是了。
設(shè)置不同字體樣式
一般來說app一般給個粗體之類的足夠了。但是有的ui會給特定的字體文件。我們可以將其放在res/font目錄下。使用的時候通過。fontfamily@font即可。