Android开发经验谈Android开发Android知识

TextView分段显示不同颜色的字符串

2017-12-08  本文已影响1604人  AntDream

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

一般有三种实现方式

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

多个TextVew

使用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);

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

使用Html

"首付:" + data1 + "月供:" + data2
//首先是拼接字符串
String content = "<font color=\"#FE6026\">" + data + "</font>"
//然后直接setText()
TextView tvContent = (TextView) view.findViewById(R.id.tvContent);
tvContent.setText(Html.fromHtml(content));

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


欢迎关注我的微信公众号,期待与你一起学习,一起交流,一起成长!


AntDream
上一篇下一篇

猜你喜欢

热点阅读