我是靠谱客的博主 飞快芒果,这篇文章主要介绍SpannableString的使用,实现富文本效果字体颜色 ForegroundColorSpan 下划线 UnderlineSpan 中划线 StrikethroughSpan  字体大小 AbsoluteSizeSpan 字体背景色 BackgroundColorSpan 斜体、粗体 StyleSpan  可点击 ClickableSpan 文本图片 ImageSpan,现在分享给大家,希望可以做个参考。

在Android开发过程中,总会有些需求涉及到TextView展示形式复杂多样的文字,例如下划线、斜体、超链接等。其实SpannableString就能够简便的设置文字样式。

核心方法 

object what:ForegroundColorSpan、UnderlineSpan等各种Span;
int start:字符开始位置
int end:字符结束位置
int flags:取值有如下四个
Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标
Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终了下标
Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标

先去试试看

  • 字体颜色 ForegroundColorSpan 

    复制代码
    1
    2
    3
    4
    SpannableString spannableString = new SpannableString("安卓开发从入门到放弃"); ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.BLUE); spannableString.setSpan(colorSpan,0,4,Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString);

      

  • 下划线 UnderlineSpan

复制代码
1
2
3
4
SpannableString spannableString = new SpannableString("安卓开发从入门到放弃"); UnderlineSpan underlineSpan = new UnderlineSpan(); spannableString.setSpan(underlineSpan,0,4,Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString);

 

  • 中划线 StrikethroughSpan

复制代码
1
2
3
4
SpannableString spannableString = new SpannableString("安卓开发从入门到放弃"); StrikethroughSpan strikethroughSpan = new StrikethroughSpan(); spannableString.setSpan(strikethroughSpan,0,4,Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString);

 

  •  字体大小 AbsoluteSizeSpan

复制代码
1
2
3
4
SpannableString spannableString = new SpannableString("安卓开发从入门到放弃"); AbsoluteSizeSpan absoluteSizeSpan = new AbsoluteSizeSpan(25); spannableString.setSpan(absoluteSizeSpan,0,4,Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString);

 

  • 字体背景色 BackgroundColorSpan

复制代码
1
2
3
4
SpannableString spannableString = new SpannableString("安卓开发从入门到放弃"); BackgroundColorSpan absoluteSizeSpan = new BackgroundColorSpan(Color.BLUE); spannableString.setSpan(absoluteSizeSpan,0,4,Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString);

 

  • 斜体、粗体 StyleSpan

复制代码
1
2
3
4
5
6
SpannableString spannableString = new SpannableString("安卓开发从入门到放弃"); StyleSpan styleSpan1 = new StyleSpan(Typeface.BOLD); StyleSpan styleSpan2 = new StyleSpan(Typeface.ITALIC); spannableString.setSpan(styleSpan1,5,7,Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(styleSpan2,8,10,Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString);

  

  • 可点击 ClickableSpan

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
SpannableString spannableString = new SpannableString("安卓开发从入门到放弃"); //必须添加,否则点击时间无效 textView.setMovementMethod(LinkMovementMethod.getInstance()); MyClickSpan clickSpan = new MyClickSpan(); spannableString.setSpan(clickSpan,0,4,Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString); class MyClickSpan extends ClickableSpan { @Override public void updateDrawState(TextPaint ds) { ds.bgColor = getResources().getColor(R.color.white); } @Override public void onClick(@NonNull View widget) { ToastUtils.showToast("被点击了"); } }

 

  • 文本图片 ImageSpan

复制代码
1
2
3
4
5
6
SpannableString spannableString = new SpannableString("安卓开发从入门到放弃"); Drawable drawable = getResources().getDrawable(R.drawable.coin); drawable.setBounds(0, 0, 42, 42); ImageSpan imageSpan = new ImageSpan(drawable); spannableString.setSpan(imageSpan,3,5,Spanned.SPAN_INCLUSIVE_EXCLUSIVE); textView.setText(spannableString);

 

其实还有其他的各种风格的span,模式大同小异,有兴趣可以实现一下。

最后

以上就是飞快芒果最近收集整理的关于SpannableString的使用,实现富文本效果字体颜色 ForegroundColorSpan 下划线 UnderlineSpan 中划线 StrikethroughSpan  字体大小 AbsoluteSizeSpan 字体背景色 BackgroundColorSpan 斜体、粗体 StyleSpan  可点击 ClickableSpan 文本图片 ImageSpan的全部内容,更多相关SpannableString的使用,实现富文本效果字体颜色内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部