我是靠谱客的博主 飞快芒果,最近开发中收集的这篇文章主要介绍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 

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

      

  • 下划线 UnderlineSpan

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

 

  • 中划线 StrikethroughSpan

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

 

  •  字体大小 AbsoluteSizeSpan

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

 

  • 字体背景色 BackgroundColorSpan

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

 

  • 斜体、粗体 StyleSpan

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

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

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的使用,实现富文本效果字体颜色 ForegroundColorSpan 下划线 UnderlineSpan 中划线 StrikethroughSpan  字体大小 AbsoluteSizeSpan 字体背景色 BackgroundColorSpan 斜体、粗体 StyleSpan  可点击 ClickableSpan 文本图片 ImageSpan所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部