Android Span架构学习笔记
来源:互联网 发布:淘宝高颜值平价零食 编辑:程序博客网 时间:2024/06/16 06:55
框架介绍
框架涉及到的类遵循以下四个定义规则:
- 如果一个
Span
影响字符层次上的文字格式,那么需要继承CharacterStyle
类。 - 如果一个
Span
影响段落层次上的文字格式,那么需要继承ParagraphStyle
接口。 - 如果一个
Span
修改字符层次上的文字外观,那么需要继承UpdateAppearance
接口。 - 如果一个
Span
修改字符层次上度量或者尺寸,那么需要继承UpdateLayout
接口。
但是实际上我们往往继承的是更加具体的类,而不是以上这些抽象类和接口。
类型介绍
下面是Android
预设的一些Span
的用法:
android.text.style.BulletSpan
该类影响段落层次的文字格式,可以让你在段落前加一个小圆点。
BulletSpan span = new BulletSpan(15,Color.RED);SpannableString spannableString = new SpannableString(CONTENT);spannableString.setSpan(span,0,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);mTvTextView.setText(spannableString);
android.text.style.QuoteSpan
可以在段落前添加竖直的引用线。
QuoteSpan span = new QuoteSpan(Color.RED);spannableString.setSpan(span,0,2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android.text.style.AlignmentSpan
可以对文字对齐方式进行设置,有水平居中,左侧对齐,右侧对齐。
AlignmentSpan.Standard span = new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER);spannableString.setSpan(span,0,0,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android.text.style.UnderlineSpan
它可以在文字下方添加下划线。其内部实现其实就是使用Paint.setUnderlineText(true)
实现的。
UnderlineSpan span = new UnderlineSpan();spannableString.setSpan(span,0,spannableString.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android.text.style.StrikethroughSpan
它允许你在文字上添加删除线。它内部使用Paint.setStrikeThruText(true))
来实现。
StrikethroughSpan span = new StrikethroughSpan();spannableString.setSpan(span,0,spannableString.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android.text.style.SubscriptSpan
文字作为下标进行显示
SubscriptSpan span = new SubscriptSpan();spannableString.setSpan(span,0,spannableString.length()/2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android.text.style.SuperscriptSpan
同上,文字作为上标显示
android.text.style.BackgroundColorSpan
你可以使用它设置文字的背景颜色
BackgroundColorSpan span = new BackgroundColorSpan(Color.RED);spannableString.setSpan(span,0,spannableString.length()/2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android.text.style.ForegroundColorSpan
同上,可以设置字体的颜色
android.text.style.ImageSpan
可以在文字中添加图片
ImageSpan span = new ImageSpan(this,R.mipmap.ic_launcher);spannableString.setSpan(span,0,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android.text.style.StyleSpan
它允许你设置文字的类型(bold, italic, normal)
StyleSpan span = new StyleSpan(Typeface.BOLD);spannableString.setSpan(span,0,spannableString.length()/2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android.text.style.AbsoluteSizeSpan
它允许你设置文字的绝对字体大小。
AbsoluteSizeSpan span = new AbsoluteSizeSpan(24,true);spannableString.setSpan(span,0,spannableString.length()/2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android.text.style.RelativeSizeSpan
允许设置相对字体的大小。
传入的参数为2.0f这样的。
android.text.style.ScaleXSpan
可以在文字的X方向上进行缩放
ScaleXSpan span = new ScaleXSpan(2.0f);spannableString.setSpan(span,0,spannableString.length()/2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
android.text.style.MaskFilterSpan
可以在文字上设置蒙版(android.graphics.MaskFilter)
//Blur a characterspan = new MaskFilterSpan(new BlurMaskFilter(density*2, BlurMaskFilter.Blur.NORMAL));//Emboss a characterspan = new MaskFilterSpan(new EmbossMaskFilter(new float[] { 1, 1, 1 }, 0.4f, 6, 3.5f));
阅读全文
0 0
- Android Span架构学习笔记
- Android Span 架构介绍
- 传送门:Android Span 架构介绍
- 学习笔记:Android系统架构
- android 显示架构学习笔记
- Android GPS 架构学习笔记
- Android 架构概况,学习笔记。
- Android系统架构学习笔记
- Android 视图架构学习笔记
- Android MVP架构学习笔记
- bootstrap 学习笔记之span div差别
- Android学习笔记<二> Android架构
- 《Android群英传》学习笔记 ---Android系统架构
- span学习
- Android学习笔记__1__Android体系架构
- Android 学习笔记1:基本架构
- Android学习笔记__1__Android体系架构
- Android学习笔记__1__Android体系架构
- git修改已经push过的commit message
- 实现不刷新整个页面进行前进后退
- Python探索之路(七)---python中文编码
- ImageLoaderUtil类
- 创建形状和蒙版
- Android Span架构学习笔记
- 我的装机过程
- linux命令--chown
- LNMP状态管理命令
- GetMapping 和 PostMapping
- java中的工具类
- Matlab——SCARA机器人
- 反转 枚举
- 一个按钮触发另一个按钮