Android实战篇 阅读并同意“用户协议”与“隐私政策” 【Kotiln / Java】
2021/4/15 12:25:29
本文主要是介绍Android实战篇 阅读并同意“用户协议”与“隐私政策” 【Kotiln / Java】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、前言:SpannableStringBuilder
1、SpannableStringBuilder和SpannableString的区别类似与StringBuilder、String
2、SpannableStringBuilder可以拼接,而SpannableString不可拼接
二、主要方法
SpannableStringBuilder和SpannableString主要通过使用setSpan(Object what, int start, int end, int flags)改变文本样式
三、对应参数
start: 指定Span的开始位置 end: 指定Span的结束位置,并不包括这个位置。 flags:取值有如下四个 Spannable. SPAN_INCLUSIVE_EXCLUSIVE:前面包括,后面不包括,即在文本前插入新的文本会应用该样式,而在文本后插入新文本不会应用该样式 Spannable. SPAN_INCLUSIVE_INCLUSIVE:前面包括,后面包括,即在文本前插入新的文本会应用该样式,而在文本后插入新文本也会应用该样式 Spannable. SPAN_EXCLUSIVE_EXCLUSIVE:前面不包括,后面不包括 Spannable. SPAN_EXCLUSIVE_INCLUSIVE:前面不包括,后面包括 what: 对应的各种Span,不同的Span对应不同的样式。已知的可用类有: BackgroundColorSpan : 文本背景色 ForegroundColorSpan : 文本颜色 MaskFilterSpan : 修饰效果,如模糊(BlurMaskFilter)浮雕 RasterizerSpan : 光栅效果 StrikethroughSpan : 删除线 SuggestionSpan : 相当于占位符 UnderlineSpan : 下划线 AbsoluteSizeSpan : 文本字体(绝对大小) DynamicDrawableSpan : 设置图片,基于文本基线或底部对齐。 ImageSpan : 图片 RelativeSizeSpan : 相对大小(文本字体) ScaleXSpan : 基于x轴缩放 StyleSpan : 字体样式:粗体、斜体等 SubscriptSpan : 下标(数学公式会用到) SuperscriptSpan : 上标(数学公式会用到) TextAppearanceSpan : 文本外貌(包括字体、大小、样式和颜色) TypefaceSpan : 文本字体 URLSpan : 文本超链接 ClickableSpan : 点击事件
Java篇- 实现
- 例子一:仅修改字体颜色 : SpannableString
/** * 使用SpannableString设置样式——字体颜色 */ private void modemo() { SpannableString spannableString = new SpannableString("请关注彭老希,我会持续更新喔"); //需要更改的颜色值 ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#009ad6")); // 0 , 8 需要改变字体颜色的index 坐标位置 spannableString.setSpan(colorSpan, 0, 8, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); //实现变色的文本视图 ((TextView)findViewById(R.id.mode1)).setText(spannableString); }
创建SpannableString的时候,传入需要显示的字符串。使用ForegroundColorSpan为文字设置颜色。
Kotiln篇- 实现
- 设置 SpannableStringBuilder
private fun setSpannableText( style : SpannableStringBuilder ,start:Int,end:Int ,start2:Int,end2:Int): SpannableStringBuilder{ //设置服务协议点击事件 val serviceAgreement: ClickableSpan = object : ClickableSpan() { override fun onClick(widget: View) { //往服务页面跳转 } override fun updateDrawState(ds: TextPaint) { super.updateDrawState(ds) ds.isUnderlineText = false ds.color = ContextCompat.getColor(applicationContext,R.color.color_009af1) } } //设置隐私政策点击事件 val privacyPolicy: ClickableSpan = object : ClickableSpan() { override fun onClick(widget: View) { //往服务页面跳转 } override fun updateDrawState(ds: TextPaint) { super.updateDrawState(ds) ds.isUnderlineText = false ds.color = ContextCompat.getColor(applicationContext,R.color.color_009af1) } } style.setSpan(serviceAgreement, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) style.setSpan(privacyPolicy, start2, end2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE) return style }
- 设置 TextView
var style = SpannableStringBuilder() style.append("我已阅读并同意《用户服务协议》及《隐私政策》") style = setSpannableText(style,7,15,16,22) //这一行必须要 readAgree.movementMethod = LinkMovementMethod.getInstance() //赋值 readAgree.text = style //设置高亮颜色透明,因为点击会变色 readAgree.highlightColor = ContextCompat.getColor(applicationContext,R.color.transparent)
这篇关于Android实战篇 阅读并同意“用户协议”与“隐私政策” 【Kotiln / Java】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南