Android_非UI:SpannableString

SpannableString可以对一个String设置前景色、背景色、字体大小、删除线、下划线、上角标、下角标、字体类型、插入图片、连接等。
这里写图片描述

说明
ForegroundColorSpan前景色
BackgroundColorSpan背景色
RelativeSizeSpan字体相对大小
AbsoluteSizeSpan字体绝对大小
StrikethroughSpan删除线
UnderlineSpan下划线
SuperscriptSpan上角标
SubscriptSpan下角标
StyleSpan字体类型
ImageSpan图片
URLSpan超链接

inclusive:包括,exclusive:不包括。但是应用中发现 INCLUSIVE EXCLUSIVE 不起作用,都是包左不包右。

spaned说明
Spanned.SPAN_INCLUSIVE_INCLUSIVE包左右
Spanned.SPAN_INCLUSIVE_EXCLUSIVE包左不包右
Spanned.SPAN_EXCLUSIVE_INCLUSIVE左右都不包
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE包右不包左

这里写图片描述
使用:

SpannableString text = new SpannableString("设置文字的前景色为红色");
ForegroundColorSpan span = new ForegroundColorSpan(Color.parseColor("#FF00FF"));
text.setSpan(span, 2, 3, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
tv1.setText(text);

其它还有:

BackgroundColorSpan span = new BackgroundColorSpan(Color.RED);
RelativeSizeSpan span = new RelativeSizeSpan(2.0f);
AbsoluteSizeSpan aSpan = new AbsoluteSizeSpan(50);
StrikethroughSpan span = new StrikethroughSpan();
UnderlineSpan span = new UnderlineSpan();
SuperscriptSpan span = new SuperscriptSpan();
SubscriptSpan span = new SubscriptSpan();
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);

插入图片

SpannableString text = new SpannableString("在文本中添加表情(表情)");
Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);
drawable.setBounds(0, 0, 50, 50);
ImageSpan span = new ImageSpan(drawable);
text.setSpan(span, 6, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv9.setText(text);

超链接:

SpannableString text = new SpannableString("给文字设置超链接百度");
URLSpan span = new URLSpan("http://www.baidu.com/");
text.setSpan(span, 8, 9, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
tv10.setMovementMethod(LinkMovementMethod.getInstance());//跳转到手机默认浏览器中,必须加这一行代码
tv10.setHighlightColor(Color.parseColor("#969696"));
tv10.setText(text);

参考:
用SpannableString打造绚丽多彩的文本显示效果
【Android】TextView中不同大小字体如何上下垂直居中?
demo: https://git.oschina.net/AndroidUI/SpanableString01

类似的库:SuperTextView

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值