本文主要是介绍Android Span详解,疯狂膜拜,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
TextView有样式属性,为什么还需要Span**?**
通过XML属性或者代码设置就可以改变文本样式,但是效果必须作用于整个文本,如果要在部分文本上使用特殊样式就无能无力了,例如像下面这种:
Span就是解决这种需求的,Span样式可以作用于字符或者段落级别的文本。
通常使用的套路是样式属性和Span组合使用,可以考虑将设置给TextView的样式属性作为一种“基本”样式,而 Span样式是应用在基本样式“之上”并且会覆盖基本样式的样式。
例如,当给一个 TextView 设置了 textColor=”@color.blue” 属性且设置开头4个字符应用了 ForegroundColorSpan(Color.PINK),则开头4个字符会使用 span 设置的粉色,而其他文本使用 TextView 属性设置的颜色。具体API使用,自行google,或者查看github的Span Sample。
https://github.com/AndroidDog/SpanSample
<TextView
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:textColor="@color/blue"/>
SpannableString spannable = new SpannableString(“Text styling”);
spannable.setSpan(
new ForegroundColorSpan(Color.PINK),
0, 4,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
myTextView.setText(spannable);
如何创建使用Span
当使用 span 时,需要使用SpannedString, SpannableString 或 SpannableStringBuilder之一。 它们之间的区别在于text内容或markup是可改变的还是不可改变的,以及它们使用的内部结构:SpannedString 和 SpannableString 使用线性数组记录已添加
这篇关于Android Span详解,疯狂膜拜的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!