android隐私协议组件,Android 服务协议隐私政策高亮可点击写法

实现效果:

0a152564115d997face5027e2abf4615.png

亦或者是在弹窗中显示,都是一样的。

代码比较简单:

private fun setText() {

//拼接字符串

val spanBuilder = SpannableStringBuilder("同意")

/**

* 服务协议

*/

var span = SpannableString("服务协议")

//服务协议点击事件

span.setSpan(object : ClickableSpan() {

override fun onClick(widget: View) {

Toast.makeText(this@LoginActivity,"服务协议",Toast.LENGTH_SHORT).show()

}

}, 0, span.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)

//设置颜色、下划线

span.setSpan(

ForegroundColorSpan(Color.parseColor("#D1894A")),

0,

span.length,

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE

)

spanBuilder.append(span)

spanBuilder.append("与")

/**

* 隐私政策

*/

span = SpannableString("隐私政策")

span.setSpan(object : ClickableSpan() {

override fun onClick(widget: View) {

Toast.makeText(this@LoginActivity,"隐私政策",Toast.LENGTH_SHORT).show()

}

}, 0, span.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)

span.setSpan(

ForegroundColorSpan(Color.parseColor("#D1894A")),

0,

span.length,

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE

)

spanBuilder.append(span)

// 赋值给TextView

tv_service_agreement.movementMethod = LinkMovementMethod.getInstance()

tv_service_agreement.text = spanBuilder

//设置高亮颜色透明,因为点击会变色

tv_service_agreement.highlightColor = ContextCompat.getColor(applicationContext, R.color.transparent)

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值