Android Textview用 SpannableStringBuilder改变字体颜色

在Android开发中,使用SpannableStringBuilder可以轻松实现TextView中部分文字颜色的改变,替代了之前通过多个TextView拼接的方法。通过代码示例展示这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现TextView改变部分字体颜色其实很简单 在用SpannableStringBuilder之前我们一直用多个textview来实现这种效果

现在看看代码 :

title = (TextView) findViewById(R.id.dia_title);
  spannable = new SpannableStringBuilder(context.getResources()
    .getString(R.string.telnotetitle));
  
spannable.setSpan(new ForegroundColorSpan(Color.RED), 7, 11,
    Spannable.SPAN_EXCLUSIVE_INCLUSIVE);//背景色

  title.setText(spannable);
这样我们可以把我们字符串4个文字改变成红色
下面看看SpannableStringBuilder的setSpan()方法spannable.setSpan(new ForegroundColorSpan(Color.RED),7,9,Spannable.SPAN_EXCLUSIVE_INCLUSIVE); //前景色
new StrikethroughSpan() //设置删除线
new URLSpan("http://www.baidu.com")//http超链接 
new URLSpan("tel:4155551212")//电话超链接 
AbsoluteSizeSpan(int size) // 设置字体大小,参数是绝对数值,相当于Word中的字体大小
ScaleXSpan(float proportion) // 缩放字体,与上面的类似,默认为1,设置后就是原来的乘以proportion,大于1时放大(zoon in),小于时缩小(zoom out)
StyleSpan(Typeface style) //字体风格,比如粗体,斜体 下面介绍一下Spannable的几个常量Spanned.SPAN_EXCLUSIVE_EXCLUSIVE --- 不包含两端start和end所在的端点
 
Spanned.SPAN_EXCLUSIVE_INCLUSIVE --- 不包含端start,但包含end所在的端点
Spanned.SPAN_INCLUSIVE_EXCLUSIVE --- 包含两端start,但不包含end所在的端点
Spanned.SPAN_INCLUSIVE_INCLUSIVE--- 包含两端start和end的端点

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值