• 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

    总结

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

  • 相关阅读:
    你了解Java并发之AQS
    VUE element-ui之table表格横向展示(表尾汇总)_elementui横向表格
    C#(Csharp)我的基础教程(一)(我的菜鸟教程笔记)-构造方法学习与探究
    如何让论文成为一篇可发表的期刊文章?
    【Codeforces】 CF1762E Tree Sum
    【javaSE】初始类与对象
    算法竞赛入门【码蹄集新手村600题】(MT1251-1300)
    原型和原型链
    gcc/c++ 版本不一致问题导致的
    【力扣每日一题04】数组篇--搜索插入位置
  • 原文地址:https://blog.csdn.net/Android_Cll/article/details/133811589