问题描述
在安卓开发中,有时候需要一个Textview展示不同的颜色,可能是为了醒目,或者一些其他的原因。之前在开发的时候写过,这次在项目中再次遇到。记录一下。以防下次再遇到的时候还要再去搜。
解决方案
一、
使用SpannableStringBuilder 、SpannableString,具体api可以搜索查看。该方法是通过设置字符串下标的方式,比如(0,5)则是字符串的0到5显示为某种样式。此方法有个局限性,就是在国际化的APP中,因为不同语言的字符串长度是不同的。没法设置固定的下标。所以在这种情况下使用方法二。
二、
通过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>"; //不加粗
包括一些粗体效果,字体的大小都是可以设置的。
然后如果把这些代码写在代码里,看起来会很乱。可以通过占位符的方式,将其写在string文件.通过ALT+回车的万能提示。可以看到String.format()方法。就是了。
设置不同字体样式
一般来说app一般给个粗体之类的足够了。但是有的ui会给特定的字体文件。我们可以将其放在res/font目录下。使用的时候通过。fontfamily@font即可。