我是靠谱客的博主 寒冷路人,最近开发中收集的这篇文章主要介绍Android TextView中实现部分文字变色及点击事件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

在下面一段文字中实现部分文字变色和添加事件。文本内容:
xx用户协议欢迎您使用"xx",我们非常重视您的个人信息和隐私保护。在您使用“xx”服务前,请仔细阅读《xx用户协议》,我们将严格按照经您同意的各项条款使用您的个人信息,以便为您提供更好的服务。如您同意此政策,请点击“同意”并开始使用我们的产品和服务,我们会尽全力保护您的个人信息安全。

我们的需求是在"《xx用户协议》"里面的字体都改变颜色且添加点击跳转。

SpannableStringBuilder的使用

  1. 实例化SpannableStringBuilder
   String content="...."; //文本内容在上面已经有了
   SpannableStringBuilder spannable = new SpannableStringBuilder(content);
  1. 计算《xx用户协议》在这段文字中出现的前后位置。也就是获取《 和 》的下标。
   int startIndex = 0;
   int endIndex = 0;
   if (!TextUtils.isEmpty(content)) {
          //获取位置
          startIndex = content.indexOf("《"); 
          endIndex = content.lastIndexOf("》")+1;
   }
  1. 设置spannable
   spannable.setSpan(new TextClick(), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
   //这个一定要记得设置,不然点击不生效。
   textView.setMovementMethod(LinkMovementMethod.getInstance());
   textView.setText(spannable);
  1. 自定义类使其继承ClickableSpan,因为需要需要有点击事件,应该用这个类来实现。
    /**** 部分文字点击事件*/
    private class TextClick extends ClickableSpan {
        @Override
        public void onClick(View view) {
              //你的业务需求,比如点击跳转到h5页面
        }

        @Override
        public void updateDrawState(TextPaint ds) {
            super.updateDrawState(ds);
            ds.setColor(Color.BLUE);   //设置字体颜色
           // ds.setColor(Color.parseColor("#000000"));   //自定义颜色值
            ds.setUnderlineText(false); //设置没有下划线
        }
    }

补充说明

如果用户不需要点击事件,就直接可以使用

	spannable.setSpan(new ForegroundColorSpan(Color.parseColor("#000000")),startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

setSpan(Object what, int start, int end, int flags) 方法说明:
1、参数设置颜色(也可以设置点击事件)
2、参数设置变色的起始位置
3、参数设置变色的结束位置
4、参数flags,有4个属性。在使用的过程中,用户可以根据自己的需求进行设置。

	Spanned.SPAN_EXCLUSIVE_EXCLUSIVE   //前后都不包括
	Spanned.SPAN_INCLUSIVE_EXCLUSIVE   //前面包括,后面不包括
	Spanned.SPAN_EXCLUSIVE_INCLUSIVE   //前面不包括,后面包括
	Spanned.SPAN_INCLUSIVE_INCLUSIVE   //前后都包括

最后

以上就是寒冷路人为你收集整理的Android TextView中实现部分文字变色及点击事件的全部内容,希望文章能够帮你解决Android TextView中实现部分文字变色及点击事件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部