android 中一段文字设置不同颜色

这篇具有很好参考价值的文章主要介绍了android 中一段文字设置不同颜色。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、使用HTML 、strings.xml 辅助完成

二、SpannableStringBuilder 来实现

        我们都会遇到UI给的效果图中,一段文字,却用不同的颜色显示关键字以突出重点。我们平常用到都是使用TextView设置textColor就可以了,如何设置多种颜色呢,有两种方法:

        比如说我们想要实现以下效果的一段文字:
        1、天气不错,适合露营
        2、这里有一条河流,也可以去钓鱼

我们可以把这段文字分成4个部分,分别是 “1、天气不错,适合”,“露营”,“2、这里有一条河流,也可以去”,“钓鱼

一、使用HTML 、strings.xml 辅助完成

        1、首先在 strings.xml 文件中添加:

<string name="black_red"><Data><![CDATA[<font color="#000000">%1$s</font><font color="#ff0000">%2$s</font><font color="#000000">%3$s</font><font color="#ff0000">%4$s</font>]]></Data></string>

      2、在Activity中给需要设置多种颜色的TextView设置如下代码:

textView.setText(Html.fromHtml(context.getResources().getString(R.string.black_red,“1、天气不错,适合”,“露营<br>”,“2、这里有一条河流,也可以去”,“钓鱼”)));

        注:<br> 只是用来换行 

二、SpannableStringBuilder 来实现

        首先,需要把这段文字声明成一个字符串:

String content= "1、天气不错,适合露营\n2、这里有一条河流,也可以去钓鱼"

         注:\n 只是用来换行

SpannableStringBuilder builder=new SpannableStringBuilder(content);
                ForegroundColorSpan buleSpan1 = new ForegroundColorSpan(Color.parseColor("#ff0000"));
                ForegroundColorSpan buleSpan2 = new ForegroundColorSpan(Color.parseColor("#ff0000"));
/**
*  start:需要替换颜色的字符串的起始位置(从0开始)  end:结束位置
*/
                builder.setSpan(buleSpan1, 9, 10, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
                builder.setSpan(buleSpan2, 26, 27, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
              

注:始末下表数的填写和 Spannable.SPAN_INCLUSIVE_INCLUSIVE 有关,可以选择是否包含这两个下标的字符。文章来源地址https://www.toymoban.com/news/detail-597080.html

到了这里,关于android 中一段文字设置不同颜色的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包