【TextView分段显示不同颜色的字体——进阶篇】

本文介绍了一种在Android中使用TextView展示富文本的方法,通过封装简化了设置不同颜色、大小和位置图标的过程,并演示了如何添加点击事件。

【TextView分段显示不同颜色的字体——基础篇】讲解了基本的原生写法。但是在实际的项目使用中,使用封装好的那肯定是既方便有便捷。下面我们来说说如何封装,飞喽…
还是先贴出封装后的效果图吧:

在这里插入图片描述

封装后的使用方法:

        textView1.setSpecifiedTextsColor(
            "为确认身份,我们需要验证您的手机号。请使用安全手机18865526389获取验证码短信",
            "18865526389",
            ContextCompat.getColor(this, R.color.colorAccent),
            false,
            object : StringClickSpan.ClickCallBack {
                override fun onStringClick(view: View?) {
                    Toast.makeText(this@ToolActivity, "点击了手机号", Toast.LENGTH_LONG).show()
                }
            })
       
       //不带点击事件
        textView2.setSpecifiedTextsColor(
            "为确认身份,我们需要验证您的手机号。请使用安全手机 18865526389 获取验证码短信",
            " 18865526389 ",
            ContextCompat.getColor(this, R.color.colorAccent)
        )
        textView3.setSpecifiedTextsSize(
            "¥ 99.65",
            " 99.65", DensityUtils.sp2px(this, 25f)

        )

        textView4.setSpecifiedPositionIcon(
            "马云马化腾对决交通场景一文说清双方布局,马云马化腾对决交通场景一文说清双方布局",
            10,
            R.mipmap.ic_huo_yan
        )

        textView5.setTextHeadIcon(
            "马云马化腾对决交通场景一文说清双方布局,马云马化腾对决交通场景一文说清双方布局",
            R.mipmap.ic_huo_yan
        )
        textView6.setTextEndIcon(
            "马云马化腾对决交通场景一文说清双方布局,马云马化腾对决交通场景一文说清双方布局",
            R.mipmap.ic_huo_yan
        )

没错,就是这么简单!哈哈

多个点击事件:

在这里插入图片描述

  textView66.setTextOnTextView(
            getString(R.string.xieyi),
            SegmentTextView.StringEditBean("《用户协议》",
                ContextCompat.getColor(this@ToolActivity, R.color.colorAccent),
                object : ClickableSpan() {
                    override fun onClick(widget: View) {
                        Toast.makeText(this@ToolActivity, "用户协议", Toast.LENGTH_LONG).show()
                    }

                }),
            SegmentTextView.StringEditBean("《隐私政策》",
                ContextCompat.getColor(this@ToolActivity, R.color.colorAccent),
                object : ClickableSpan() {
                    override fun onClick(widget: View) {
                        Toast.makeText(this@ToolActivity, "隐私政策", Toast.LENGTH_LONG).show()
                    }

                })
        )

github源码地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值