使用Span实现各种酷炫效果

本文介绍了如何使用Span在Android中实现文本的各种特效,包括设置字体颜色、改变背景色、添加下划线、加边框、制作彩虹色文字及动态效果,以及实现打字机效果。通过自定义Span类和利用Shader进行着色,详细讲解了其实现过程。
摘要由CSDN通过智能技术生成

前一段时间一直在做富文本展示和文本处理,主要用到了Html.fromHtml()实现加载网页,但实现整段文本的某些特殊如个别文字的点击,改背景色、前景色等效果,就用到了我们今天要用到的Span这个类。

关于加载网页或个别文字点击效果,可以阅读我之前写的一篇文章——用TextView实现富文本展示,点击断句和语音播报

您也关注:
- https://github.com/shuaijia/SpanString
- https://github.com/shuaijia/RichTextView
- 我的微信公众号——安卓干货营

那接下来就先看下效果图
这里写图片描述

今天会简单介绍几个Span的基本用法,也会分享一些比较酷炫的使用方法:

  • 设置字体颜色
  • 改变字体背景色
  • 给文本添加下划线
  • 给文本加边框
  • 彩虹色文字
  • 彩虹色字体渐变动画
  • 打字效果展示文本

1、设置字体颜色

这里写图片描述

/**
 * 设置不同颜色文字
 */
private void setForegroundColor() {
    SpannableString spannableString = new SpannableString(
                "我爱北京天安门,天安门上太阳升 我爱北京天安门,天安门上太阳升");

    spannableString.setSpan(new ForegroundColorSpan(Color.RED), 0, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv_diff_color.setText(spannableString);
}

2、改变字体背景色

这里写图片描述

/**
 * 设置背景色
 */
private void setBackgroundColor() {
    SpannableString spannableString = new SpannableString(
                "我爱北京天安门,天安门上太阳升 我爱北京天安门,天安门上太阳升");

    spannableString.setSpan(new BackgroundColorSpan(Color.RED), 0, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    tv_bg_color.setText(spannableString);
}

3、给文本添加下划线

这里写图片描述

/**
 * 设置超链接
 */
private void setLink() {
    SpannableString spannableString = new SpannableString(
                "我爱北京天安门,天安门上太阳升 我爱北京天安门,天安门上太阳升");
    //设置下划线
    spannableString.setSpan(new UnderlineSpan(), 0, 16, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv_link.setText(spannableString);
}

4、给文本加边框

这里写图片描述

这种效果就不再是简单的直接使用系统提供的Span类就可以了,需要我们自定义:

public class FrameSpan extends ReplacementSpan {
   
    private final Paint mPaint;
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值