一个TextView 设置两种字体颜色和大小

项目中用到一个需求,实现效果是这样的:


    我是知识点我是知识点我是知识点我是知识点  【题】


要求这样的:1、这个化学知识点名字不固定长度 2、题子要是红色,比知识点字体小 3、要挨到化学名的旁边 4、【题】字不能挤掉了 5、可以折行


开始我用两个TextView,尝试多种布局都实现不了这种要求。然后尝试用一个TextView,尝试用这种方式:

holder.title.setText(Html.fromHtml(item.title+"<small><font color=\'#ff0000\'>【题】</font></small>"));

倒是可以变红,但改变字体大小不起作用。

最后多方探索,终于研究出来用 SpannableStringBuilder 实现:

String name = item.title;
String uname = "【题】";
String str = name + uname; 
final SpannableStringBuilder sp = new  SpannableStringBuilder(str);  
sp.setSpan(new ForegroundColorSpan(0xFFFF0000), name.length(), str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //字体颜色  
sp.setSpan(new AbsoluteSizeSpan(10, true), name.length(), str.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //字体大小
holder.title.setText(sp);





  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值