android string显示多样式字…
来源:互联网 发布:龙骑战歌 完整源码 编辑:程序博客网 时间:2024/06/04 19:59
SpannableString和SpannableStringBuilder都有一个设置上述Span的方法:
其中参数what是要设置的Style span,start和end则是标识String中Span的起始位置,而flags是用于控制行为的,通常设置为0或Spanned中定义的常量,常用的有:
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含两端start和end所在的端点
Spanned.SPAN_EXCLUSIVE_INCLUSIVE ---不包含端start,但包含end所在的端点
Spanned.SPAN_INCLUSIVE_EXCLUSIVE ---包含两端start,但不包含end所在的端点
Spanned.SPAN_INCLUSIVE_INCLUSIVE--- 包含两端start和end所在的端点
例子:
/*字体*/SpannableStringBuilder ssb = newSpannableStringBuilder("abcdefghijklmn");
ssb.setSpan(newRelativeSizeSpan(0.4f), 0, 5,SpannableStringBuilder.SPAN_EXCLUSIVE_EXCLUSIVE);
---------------------------------------------------------------------------
/*图片*/SpannableStringBuilder sBuilder = newSpannableStringBuilder(content);
Patternpattern = Pattern.compile(m_strReg);
Matchermatcher = pattern.matcher(content);
Drawabledrawable = null;
ImageSpanspan = null;
Stringemo = "";
while(matcher.find()) {
emo =matcher.group();
drawable= getDrawableByPicName(m_map.get(emo));
drawable.setBounds(0,0, (int)((float)m_screenWidth/Common.HDPI*24)+2,(int)((float)m_screenWidth/Common.HDPI*24)+2);
span =new ImageSpan(drawable);
sBuilder.setSpan(span,matcher.start(),matcher.end(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
创建完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),小于时缩小(zoomout)
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----如果设置了此风格,会有一条线从中间穿过所有的字,就像被划掉一样
对于这些Sytlespan在使用的时候通常只传上面所说明的构造参数即可,不需要设置其他的属性,如果需要的话,也可以对它们设置其他的属性。
- android string显示多样式字…
- android string显示多样式字…
- label上显示多样式文字
- UILabel 中文本的多样式显示
- Android字体多样式和动画TextDrawable
- Android自定义控件 多样式进度View
- Android自定义View,自定义多样式progressBar
- JQuery Highcharts图表控件多样式显示多组数据
- Android_ListView 用多样式item实现复杂布局显示
- Android中 int 和 String 互…
- android EditView 文本密码显示与…
- Android 多样式ProgressBar、ProgressDialog,自定义ProgressBar样式
- String 的 split …
- jquery定义多样式
- FlycoDialog_Master多样式对话框
- iOS 多样式UILabel
- 多样式文本SpannableString
- android string.xml中的string样式
- android应用程序申请的权限
- GooglePlay中应用自动升级可以添加…
- [BZOJ1507][NOI2003][Rope]Editor
- android混淆配置
- 自定义Activity标题栏(Title …
- android string显示多样式字…
- 青春再不做梦,就老了
- android traceview性能调试
- 3D打印指南(三)
- Oracle 优化
- JDK 动态代理类分析(java.lang.reflect.Proxy使用)
- Mina学习之IoSession
- 115个Java面试题和答案——终极列表(下)
- ExtJS4 给同一个formpanel不同的url