文章目录
前言
在开发中,往往有些需求是我们不愿意遇到的,但是也不得不处理的事情,比如一段文案,需要文案中某些文字变颜色或者点击跳转,所以简单写了几句代码实现,没什么难度,所以我就直接贴代码了!
一、效果图
二、实现代码
kotlin
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()
总结
截取字符串的方法有很多种,我就用了最简单的,这个不强求看自己!