• Android之SpannableString使用



    前言

    在开发中,往往有些需求是我们不愿意遇到的,但是也不得不处理的事情,比如一段文案,需要文案中某些文字变颜色或者点击跳转,所以简单写了几句代码实现,没什么难度,所以我就直接贴代码了!


    一、效果图

    在这里插入图片描述

    二、实现代码

      var str =
                "歡迎您使用Bitcat!我們非常重視您的個人信息和隱私保護。為了更好的保障您的個人權益,在您使用我們的產品前,請認真閱讀《Bitcat雲算力服務協定》和《隱私條款》的全部內容。【應用信息】Bitcat是全球領先的礦機分時共享平臺,為用戶提供一整套的雲挖礦服務解決方案,打包管理了礦機購買,物流運輸,電力管理,礦場運維等復雜流程,用戶只需一鍵下單即可享受服務。為提供上述服務,本應用使用過程中,需要調用您的設備的以下權限:網絡,電話,設不同意,請您立刻停止使用Bitcat."
            var spannableString = SpannableString(str)
            //点击
            spannableString.setSpan(object : ClickableSpan() {
                override fun onClick(widget: View) {
                   
                }
    
                override fun updateDrawState(ds: TextPaint) {
                    super.updateDrawState(ds)
                    ds.color = Color.parseColor("#FCBD24")
                    //取消默认的下划线
                    ds.isUnderlineText = false
                }
            }, 60, 75, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)//第一个参数,起始位置,第二个参数截止为止
            //点击
            spannableString.setSpan(object : ClickableSpan() {
                override fun onClick(widget: View) {
                  
                }
    
                override fun updateDrawState(ds: TextPaint) {
                    super.updateDrawState(ds)
                    ds.color = Color.parseColor("#FCBD24")
                    //取消默认的下划线
                    ds.isUnderlineText = false
                }
            }, 76, 82, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
            //然后把spannableString放进到Text中
            text_nr.text = spannableString
    //        text_nr.text =
    //            "歡迎您使用Bitcat!我們非常重視您的個人信息和隱私保護。為了更好的保障您的個人權益,在您使用我們的產品前,請認真閱讀" + spannableString + "和" + spannableString1 + "的全部內容。【應用信息】Bitcat是全球領先的礦機分時共享平臺,為用戶提供一整套的雲挖礦服務解決方案,打包管理了礦機購買,物流運輸,電力管理,礦場運維等復雜流程,用戶只需一鍵下單即可享受服務。為提供上述服務,本應用使用過程中,需要調用您的設備的以下權限:網絡,電話,設不同意,請您立刻停止使用Bitcat."
            //中途遇到点击后字体显示高亮,取消高亮
            text_nr.highlightColor = Color.parseColor("#00000000")
            //最后设置可点击,必须实现,否则只能显示样式,无法实现点击效果
            text_nr.movementMethod = LinkMovementMethod.getInstance()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    总结

    截取字符串的方法有很多种,我就用了最简单的,这个不强求看自己!

  • 相关阅读:
    Linux进程概念
    IntelliJ IDEA中那些让你相见恨晚超好用插件
    【Image captioning】ruotianluo/self-critical.pytorch之4—模型训练之train.py代码解析
    2023-9-10 能被整除的数
    Android Proguard混淆对抗之我见
    八股文第九天
    互联网内卷严重?你咋不看看其他行业呢?无非是三十晚上无月亮,大家都一样
    欧拉公式的证明
    linux 安装jdk
    centos7 firewalld ip转发设置、安装docker-compose出现错误、docker-compose部署Yapi
  • 原文地址:https://blog.csdn.net/Android_Cll/article/details/133811589