在正常的项目中,我们常会碰到设计给出的显示方案,要求一句话用不同的颜色和不同的字号来显示,以突出某些重点,本人以往的解决方案是多个textview拼接(很不靠谱)和Html拼接(略麻烦),今天发现了一个更好的显示方式,可以util封装,随时可用,方便的很。
�方法介绍
public SpannableStringBuilder getSpanString(Context context,String src1,String src2,int style1,int style2){
SpannableStringBuilder spanStr = null;
String src =src1 + src2 ;
int length1 = src1.length();
int lengthAll =src.length();
if(context!=null){
spanStr=new SpannableStringBuilder(src);
if(0!=length1){
spanStr.setSpan(new TextAppearanceSpan(context,style1),0,length1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE););
}
if(lengthAll !=length1){
spanStr.setSpan(newTextAppearanceSpan(context,style2),length1,lengthAll,Spanned.SPAN_EXCLUSIVE_EXC LUSIVE);
}
}
}
return spanStr;
}
参数说明:context 上下文环境
src1,src2,源数据,即需要显示的文字等
style1,style2,对应的显示样式,比如我们在style资源文件下写一个自己的style
<style name = "text_15_000000">
<item name = "android:textSize"> 30dip</item>
<item name ="android:textColor ">#000000</item>
</style>
利用上面的方法,我们就可以让一个textview显示出两种不同的字体样式了。
当然,我们还可以一次类推,让textview显示出更多的字体样式,目前我写过的最大数量是5种。
附效果截图(刚开始写文章,格式什么的得慢慢摸索了)