Android中TextView局部变色功能实现

在做项目的时候,遇到过一行文字有两种颜色。在菜鸟的时候直接会想到用多个TextView来实现。后来自己学的多了就找到了更为简单的方法了。

直接上代码:

方法一:

xml代码片段:

<TextView
    android:id="@+id/tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

Java代码片段:

TextView tv=(TextView)findViewById(R.id.tv);
String str="默认颜色<font color='#FF0000'>红颜色</font>";
tv.setTextSize(18);
tv.setText(Html.fromHtml(str));

效果图如下:

当然,还可以改变两种颜色的文字的大小。

Java代码片段:

extView tv=(TextView)findViewById(R.id.tv);
String str="默认颜色<font color='#FF0000'><small>红颜色</small></font>";
tv.setTextSize(18);
tv.setText(Html.fromHtml(str));

效果图如下:

好的,就这样子了。一个小功能就完成了。

方法二:

用SpannableString来实现。

Java代码片段:

SpannableString spannableString = new SpannableString("默认颜色红颜色");
spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FF0000")), 4,spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(spannableString);

其中,”默认颜色红颜色” 为你要改变的文本。setSpan方法有四个参数,ForegroundColorSpan是为文本设置前景色,也就是文字颜色。如果要为文字添加背景颜色,可替换为BackgroundColorSpan。4为文本颜色改变的起始位置,

spannableString.length()为文本颜色改变的结束位置。最后一个参数为布尔型,可以传入以下四种。

Spanned.SPAN_INCLUSIVE_EXCLUSIVE 从起始下标到终了下标,包括起始下标

Spanned.SPAN_INCLUSIVE_INCLUSIVE 从起始下标到终了下标,同时包括起始下标和终了下标

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE 从起始下标到终了下标,但都不包括起始下标和终了下标

Spanned.SPAN_EXCLUSIVE_INCLUSIVE 从起始下标到终了下标,包括终了下标

以上是本次我们给大家整理的关于Android中TextView局部变色功能实现的全部内容,更多内容大家可以在我们里搜索你需要的文章,感谢你的支持。

(0)

相关推荐

  • Android中实现词组高亮TextView方法示例

    前言 本文主要给大家介绍了关于Android实现词组高亮TextView的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. HighlightTextView Android文本高亮控件,基于View实现. 特点 文本高亮 单词自动换行 高亮词组保持在同一行显示 主要逻辑: 两个 Paint 负责绘制不同的文字 在每次绘制之前计算将要绘制的文本是否会超出屏幕宽度,如果超出则换行 protected void onDraw(Canvas canvas) { super.o

  • android使用Textview实现伸缩效果

    android开发过程中,经常遇到Textview展示不完全的情况. 遇到此情况,通常的处理是: 方案一.Textview添加android:ellipsize属性,让展示不完的部分使用省略号代替. 方案二.Textview采用走马灯效果,使其滚动展示全部文本内容. 对于方案一,如果想查看被省略后的内容,如何实现?微信的评论列表,豌豆荚视频详情介绍都有类似使用场景. 下面来看下Demo例子的收起效果,文本内容没有展示完全,使用省略号代替,提示"更多"和向下箭头标识,截图如下: 当点击&

  • Android中TextView实现部分文字可点击跳转

    本文实例为大家分享了TextView部分文字可点击跳转的具体代码,供大家参考,具体内容如下 效果图: 需求:每个item的文字都有两部分是连接可点击 当然需要用到SpannableString和ClickableSpan. import android.text.TextPaint; import android.text.style.ClickableSpan; import android.view.View; import com.xuehu365.xuehu.App; import co

  • Android实现可以展开的TextView

    本文实例为大家分享了一个可以展开的TextView的具体代码,供大家参考,具体内容如下 原理是通过点击的时候设置 setMaxLines(lineNum)来实现: public class ExpandableTextView extends TextView { private static int MIN_LINE_NUM = 2; private static int MAX_LINE_NUM = 20; private int lineNum = MIN_LINE_NUM; privat

  • Android Textview实现颜色渐变滚动效果

    本文实例为大家分享了Android颜色渐变滚动展示的具体代码,供大家参考,具体内容如下 public class FlashTextView extends android.support.v7.widget.AppCompatTextView { private Paint mPaint; private int mViewWidth; private LinearGradient mLinearGradient; private Matrix mGradientMatrix; private

  • Android中TextView实现分段显示不同颜色的字符串

    关于TextView TextView是Android开发中最最常见的控件之一,在API记录的属性有很多,但实际开发中,也遇到很多有趣的需求,值得去尝试,所以记录下来,既可以给大家提供参考,同时自己需要时候也方便查找. 最近开发过程中有个小小的知识点,就是TextView显示的内容需要分段显示不同的颜色,如下图所示 一般有三种实现方式 直接根据不同的需要分段字符串,然后分别使用多个TextView来显示 使用spannablestring 使用Html 下面分别来简单介绍下三种方法 多个Text

  • Android实现可点击展开的TextView

    概述 Android开发过程中,经常遇到 Textview 展示不完全的情况. 遇到此情况,通常的处理是: 方案一 Textview 添加 android:ellipsize 属性,让展示不完的部分使用省略号代替. 方案二 Textview 采用走马灯效果,使其滚动展示全部文本内容. 对于方案一,如果想查看被省略后的内容,如何实现?通常情况下是在 TextView 文本后面或下边添加一个可点击的图标,来实现 TextView 的展开与收缩.如下图: 收缩状态 展开状态 实现原理 对于以上效果,大

  • Android TextView实现词组高亮的示例代码

    本文介绍了Android TextView实现词组高亮的示例代码,分享给大家,具体如下: HighlightTextView Android文本高亮控件,基于View实现. 特点 文本高亮 单词自动换行 高亮词组保持在同一行显示 效果如下: 主要逻辑: 两个 Paint 负责绘制不同的文字 在每次绘制之前计算将要绘制的文本是否会超出屏幕宽度,如果超出则换行 protected void onDraw(Canvas canvas) { super.onDraw(canvas); float x_d

  • Android中TextView实现超过固定行数显示“...展开全部”

    前言 大家都知道,如果要让TextView只显示一行,多出部分用省略号代替的话非常容易,只需要为xml文件中的TextView控件添加android:singleLine="true"即可,那么如果我想让它显示多行的时候应该怎么做呢? 废话不多说,先看效果图: 展开前: 展开后: 示例代码: 工具类: /** * 设置textView结尾...后面显示的文字和颜色 * @param context 上下文 * @param textView textview * @param minL

  • Android自定义可点击的ImageSpan并在TextView中内置View

    有的时候可能想在TextView中添加一些图片,比如下图,发短信输入联系人时,要把联系人号码换成一个图片,但这个图片无法用固定的某张图,而是根据内容进行定制的,这更像一个view. 当然,如果你不是view而是固定的图片,比如发信息时用表情图片替代特殊符号,那么实现起来会更加简单.又或许,你希望这个图片是可点击的.这里,笔者要介绍的就是怎么用一个自定义的ImageSpan来实现在文本里插入可点击的图片或View. 在此之前,如果你还不了解SpannableString.setSpan(),不了解

  • Android开发自定义TextView省略号样式的方法

    本文实例讲述了Android开发自定义TextView省略号样式的方法.分享给大家供大家参考,具体如下: 在布局xml中设置textView的字段 android:maxLines="2"  android:ellipsize="end"字段之后,textview会自动压缩行数,并且对压缩掉的部分用...显示.如果不想用...而想用...或者... ...就需要自定义这个省略号的样式,不需要自定义控件,方法如下. 首先是布局文件 <TextView andro

随机推荐