同一TextView 上的文字设置不同的颜色,大小等

JAVA代码如下:
 
String str = "我们都是aaa中国人";
SpannableStringBuilder style=new SpannableStringBuilder(str); 
//SpannableStringBuilder实现CharSequence接口 
style.setSpan(new ForegroundColorSpan(Color.RED), 0, 2,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE ); 
style.setSpan(new ForegroundColorSpan(Color.YELLOW), 2, 7,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE ); 
style.setSpan(new ForegroundColorSpan(Color.GREEN), 7, 10,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE ); 
tv.setText(style);//将其添加到tv中 

 

创建完Spannable对象后,就可以为它们设置Span来实现想要的Rich Text了,常见的Span有: 
•AbsoluteSizeSpan(int size) ---- 设置字体大小,参数是绝对数值,相当于Word中的字体大小
•RelativeSizeSpan(float proportion) ---- 设置字体大小,参数是相对于默认字体大小的倍数,比如默认字体大小是x, 那么设置后的字体大小就是x*proportion,这个用起来比较灵活,proportion>1就是放大(zoom in), proportion<1就是缩小(zoom out)
•ScaleXSpan(float proportion) ---- 缩放字体,与上面的类似,默认为1,设置后就是原来的乘以proportion,大于1时放大(zoon in),小于时缩小(zoom out)
•BackgroundColorSpan(int color) ----背景着色,参数是颜色数值,可以直接使用android.graphics.Color里面定义的常量,或是用Color.rgb(int, int, int)
•ForegroundColorSpan(int color) ----前景着色,也就是字的着色,参数与背景着色一致
•TypefaceSpan(String family) ----字体,参数是字体的名字比如“sans", "sans-serif"等
•StyleSpan(Typeface style) -----字体风格,比如粗体,斜体,参数是android.graphics.Typeface里面定义的常量,如Typeface.BOLD,Typeface.ITALIC等等。
•StrikethroughSpan----如果设置了此风格,会有一条线从中间穿过所有的字,就像被划掉一样
对于这些Sytle span在使用的时候通常只传上面所说明的构造参数即可,不需要设置其他的属性,如果需要的话,也可以对它们设置其他的属性,详情可以参见<文档>。

posted @ 2014-10-23 17:14  WisonWang  阅读(3268)  评论(0编辑  收藏  举报