好的,连假最後一天,我们来个小篇章,就是Span啦,Span可以做到的事情有很多,如
*更改特定位置的字体颜色/大小
*新增项目符号
*可点击
*换行等等功能
首先先创立几个 String的变数
val str1 = "啊!多麽痛的领悟 你曾是我的全部"
val str2 = "只是我回首来时路的每一步都走的好孤独"
val str3 = "啊!多麽痛的领悟 你曾是我的全部~~"
val str4 = "只愿你挣脱情的枷锁 爱的束缚 任意追逐"
val str5 = "别再为爱受苦"
再过来建立 SpannableStringBuilder()的实例化
val span = SpannableStringBuilder()
好的,这边可以看到实例化了一个SpannableStringBuilder(),
它还有另外一个名为 SpannableString的东西。
那两个的差别是
接下来来设定颜色
span.append(str2)
span.setSpan(ForegroundColorSpan(Color.RED),0,str2.length,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
span.append(str3)
span.insert(0,str1)
span.append(str4)
tv.text= span
1.ForgroundColorSpan(Color.Red),文字颜色
也可以透过以下方法去拿 @color的资源
ContextCompat.getColor(requireActivity(),R.color.brown
2.第二个参数填写start: 代表start的位置,也就是第一个字
3.第三个参数填写end:代表改变end的位置,效果在这个位置不会显示
4.第四个参数填写作用区域,有以下选择
我的理解是:把 EXCLUSIVE想成不包含
INCLUSIVE 想成包含
包含的意思是是否效果扩及到其他Text文本,及假设你是在str2设立效果,
那是否前後Text文本(如str1)是否也要有扩及效果
等等会来实际看效果图
因为我们setSpan的地方是设定str2,所以请以它为基准点
val str2 = "只是我回首来时路的每一步都走的好孤独"
span.setSpan(ForegroundColorSpan(Color.RED),0,str2.length,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
SPAN_EXCLUSIVE_EXCLUSIVE:前後不含效果
SPAN_EXCLUSIVE_INCLUSIVE:前面无效果,後面有
SPAN_INCLUSIVE_INCLUSIVE:前後皆有效果
回到刚刚的code
span.append(str2)
span.setSpan(ForegroundColorSpan(Color.RED),0,str2.length,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
span.append(str3)
span.insert(0,str1)
span.append(str4)
tv.text= span
val str1 = "啊!多麽痛的领悟 你曾是我的全部"
val span = SpannableString(str1)
span.setSpan(RelativeSizeSpan(1.5F),0,3,Spanned.SPAN_EXCLUSIVE_INCLUSIVE)
tv.text= span
设置大小有两个方式
val absoluteSize = AbsoluteSizeSpan(50,true)
val span = SpannableString(str1)
span.setSpan(absoluteSize,1,3,Spanned.SPAN_INCLUSIVE_INCLUSIVE)
-AbsoluteSizeSpan(50,true):第一个参数填写 size,第二个填写boolean
true表示单位是dp,预设是false,表示单位是px
-setSpan的参数(第一个为刚刚的AbsokuteSizeSpan,第二个为start,第三个为end)
val span = SpannableString(str1)
val imageSpan = ImageSpan(requireActivity(),R.drawable.ic_people,ImageSpan.ALIGN_BASELINE)
span.setSpan(imageSpan,3,5,Spanned.SPAN_EXCLUSIVE_INCLUSIVE)
这样要注意,setSpan(imageSpan,3,5,Spanned.SPAN_EXCLUSIVE_INCLUSIVE)
里面的 start跟end,是代表要被替代的位置,所以不会显示
我的理解是:把 EXCLUSIVE想成不包含
INCLUSIVE 想成包含
包含的意思是是否效果扩及到其他Text文本,及假设你是在str2设立效果,
那是否前後Text文本(如str1)是否也要有扩及效果
好的,那今天就先这样啦,期待明天啦!
本篇大纲:基本散布图范例、进阶散布图范例 今天的一天一图表,我们要来画 散点图 / 散布图!散布图...
前言 昨天已经介绍了几个写 Dockerfile 时该注意的地方,但其实需要注意的地方非常非常多,所...
Golang Gin 表单 今天真的有点爆炸了,几乎没时间补文章,只能抽空拿点时间来写,如果在gin...
okhttp是常用的第三方库,跟retrofit、Volley一样都能做网络连线的请求。 今天就做个...
云端服务的一项重点服务是资料储存,今天让我们一起来瞧瞧AWS上的资料储存服务-S3。 1. 为何要用...