Android 对同一字符串设置不同格式

本文介绍如何利用SpannableStringBuilder结合ForegroundColorSpan和UnderlineSpan等样式为Android应用中的文本设置颜色和下划线等复杂格式。

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

使用SpannableStringBuilder对象来保存字符串,然后用它的setSpan方法来设置不同格式。

int start=0;
  txtContent=(TextView)findViewById(R.id.txtcontent_help);
  SpannableStringBuilder mSpannable=new SpannableStringBuilder();
  mSpannable.append("片库浏览\r\n").setSpan(new ForegroundColorSpan(Color.CYAN),0,mSpannable.length(),
    Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  mSpannable.setSpan(new UnderlineSpan(), 0, mSpannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  start=mSpannable.length();
  mSpannable.append("进入影片库在左边单击想浏览的下一级分类进入相应片库").setSpan
    (new ForegroundColorSpan(Color.WHITE),start,mSpannable.length(),Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  mSpannable.append("\r\n\r\n\r\n");
  start=mSpannable.length();
  mSpannable.append("订购影片\r\n").setSpan(new ForegroundColorSpan(Color.CYAN),start,mSpannable.length(),
    Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  mSpannable.setSpan(new UnderlineSpan(), start, mSpannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  start=mSpannable.length();
  mSpannable.append("在分类中单击节目或者直接搜索节目,单击订购按钮订购" +"").setSpan
    (new ForegroundColorSpan(Color.WHITE),start,mSpannable.length(),Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  mSpannable.append("\r\n\r\n\r\n");
  start=mSpannable.length();
  mSpannable.append("播放影片\r\n").setSpan(new ForegroundColorSpan(Color.CYAN),start,mSpannable.length(),
    Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  mSpannable.setSpan(new UnderlineSpan(), start, mSpannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  start=mSpannable.length();
  mSpannable.append("订购并下载完毕的节目。在已下载管理中或在浏览影片库可以直接时点击播放进行节目接看").setSpan
    (new ForegroundColorSpan(Color.WHITE),start,mSpannable.length(),Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  mSpannable.append("\r\n\r\n\r\n");
  start=mSpannable.length();
  mSpannable.append("删除影片\r\n").setSpan(new ForegroundColorSpan(Color.CYAN),start,mSpannable.length(),
    Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  mSpannable.setSpan(new UnderlineSpan(), start, mSpannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  start=mSpannable.length();
  mSpannable.append("在已下载管理中选择已下载节目,点击垃圾筐图标删除或者点击全部删除按钮全部删除").setSpan
    (new ForegroundColorSpan(Color.WHITE),start,mSpannable.length(),Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  mSpannable.append("\r\n\r\n\r\n");
  start=mSpannable.length();
  mSpannable.append("下载时间\r\n").setSpan(new ForegroundColorSpan(Color.CYAN),start,mSpannable.length(),
    Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
  mSpannable.setSpan(new UnderlineSpan(), start, mSpannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  start=mSpannable.length();
  mSpannable.append("根据用户选择节目的大小不同,以及用户宽带不同下载时间会有不同。" +
    "\r\n2MB宽带下,标清电影要1—2小时。" ).setSpan(new ForegroundColorSpan
      (Color.WHITE),start,mSpannable.length(),Spannable.SPAN_EXCLUSIVE_INCLUSIVE);  
  txtContent.setText(mSpannable);

转载于:https://www.cnblogs.com/lslzmx/archive/2011/12/29/2306252.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值