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

简介: Android 服务协议隐私政策高亮可点击写法

实现效果:


image.png

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

代码比较简单,涉及到SpannableStringBuilder知识点

用到两个Span:

  • ClickableSpan 处理点击事件
  • ForegroundColorSpan 设置修饰

代码:

    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)
    }
目录
相关文章
|
5天前
|
Android开发
Android 11 添加Service服务SELinux问题
Android 11 添加Service服务SELinux问题
14 1
|
5月前
|
开发工具 数据库 Android开发
0001Java安卓程序设计-基于Android多餐厅点餐桌号后厨前台服务设计与开发2
0001Java安卓程序设计-基于Android多餐厅点餐桌号后厨前台服务设计与开发
28 0
|
4月前
|
Java Android开发
Android Studio入门之按钮触控的解析及实战(附源码 超详细必看)(包括按钮控件、点击和长按事件、禁用与恢复按钮)
Android Studio入门之按钮触控的解析及实战(附源码 超详细必看)(包括按钮控件、点击和长按事件、禁用与恢复按钮)
185 0
|
7月前
|
编解码 物联网 开发工具
Android平台内网RTSP网关和轻量级RTSP服务的区别和联系
我们在对接轻量级RTSP服务的时候,遇到客户这样的使用场景:客户是用于车载自组网环境,确保多辆车之间可以相互看到对方的实时视频,以期可以了解到前方路况等关注的信息。
102 0
|
4月前
|
XML Java Android开发
Android Studio App开发之服务Service的讲解及实战(包括启动和停止,绑定与解绑,推送服务到前台实现音乐播放器,附源码)
Android Studio App开发之服务Service的讲解及实战(包括启动和停止,绑定与解绑,推送服务到前台实现音乐播放器,附源码)
116 0
|
25天前
|
XML Java Android开发
Android每点击一次按钮就添加一条数据
Android每点击一次按钮就添加一条数据
24 1
|
7月前
|
安全 网络协议 Linux
在安卓Termux上搭建apache服务创建个人站点并且结合cpolar内网穿透
在安卓Termux上搭建apache服务创建个人站点并且结合cpolar内网穿透工具实现公网访问。
在安卓Termux上搭建apache服务创建个人站点并且结合cpolar内网穿透
|
7月前
|
Web App开发 开发工具 Android开发
Android平台不需要单独部署流媒体服务如何实现内网环境下一对一音视频互动
我们在做内网环境的一对一音视频互动的时候,遇到这样的技术诉求:如智能硬件场景下(比如操控智能硬件),纯内网环境,如何不要单独部署RTMP或类似流媒体服务,实现一对一音视频互动。
|
7月前
|
编解码 开发工具 Android开发
Android平台如何实现外部RTSP|RTMP流注入轻量级RTSP服务模块(内网RTSP网关)
今天分享的是外部RTSP或RTMP流,拉取后注入到本地轻量级RTSP服务模块,供内网小并发场景下使用,这里我们叫做内网RTSP网关模块。
|
3月前
|
开发工具 Android开发
Android平台RTMP推送|轻量级RTSP服务|GB28181设备接入模块之实时快照保存JPG还是PNG?
Android平台RTMP推送|轻量级RTSP服务|GB28181设备接入模块之实时快照保存JPG还是PNG?