android将字符串中间几个字用*代替,Android中TextView实现分段显示不同颜色的字符串...

本文介绍了在Android开发中,如何使用多个TextView、SpannableString和HTML来实现TextView内容的分段显示不同颜色。重点讲解了SpannableString的控制细节和HTML在动态文本中的优势。适合开发者在实际项目中应对不同需求的技巧。
摘要由CSDN通过智能技术生成

关于TextView

TextView是Android开发中最最常见的控件之一,在API记录的属性有很多,但实际开发中,也遇到很多有趣的需求,值得去尝试,所以记录下来,既可以给大家提供参考,同时自己需要时候也方便查找.

最近开发过程中有个小小的知识点,就是TextView显示的内容需要分段显示不同的颜色,如下图所示

71baca969d70ec1fc2d64778c2c3f47b.png

一般有三种实现方式

直接根据不同的需要分段字符串,然后分别使用多个TextView来显示

使用spannablestring

使用Html

下面分别来简单介绍下三种方法

多个TextVew

这种方式简单粗暴,颜色样式控制灵活

如果需要显示的文本需要分多个段的话,那就需要很多个TextView,而且布局不好控制

实现方式简单,就不写例子了

使用SpannableString

想必用过的人都知道,比较好的一点是SpannableString可以精确控制一个长长的字符串中第几个到第几个字符的样式

SpannableString spannableString = new SpannableString("jakjfkajfjaj");

//设置颜色

spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FE6026")), 3, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

//设置字体大小,true表示前面的字体大小20单位为dip

spannableString.setSpan(new AbsoluteSizeSpan(20, true), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

//设置链接

spannableString.setSpan(new URLSpan("www.baidu.com"), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

//设置字体,BOLD为粗体

spannableString.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

以上只是列举了几个常见的用法,更多的可以参考android.text.style包下面的几个类

3dae965c8159265b2754b6863c5d2972.png

不知道大家看出上面的SpannableString的局限了没有,没错,SpannableString的优点在于控制得精细,缺点也是在这。我们使用SpannableString的时候必须指定样式使用的字符下标,那如果我们的字符串不是固定长度的呢?

使用Html

如果使用场景是字符串长度不固定的,比如需要服务端的数据来填充的

"首付:" + data1 + "月供:" + data2

服务端返回的数据长度不固定的话,用SpannableString就尴尬了,这时候可以考虑用Html

Html使用格式比较简单,需要用到font标签,具体的话看下面的例子

//首先是拼接字符串

String content = "" + data + ""

//然后直接setText()

TextView tvContent = (TextView) view.findViewById(R.id.tvContent);

tvContent.setText(Html.fromHtml(content));

以上就是TextView分段显示不同样式字符串的方法,希望对大家有用

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值