家资是何物,积帙列梁梠。这篇文章主要讲述Android开发之SpannableString具体解释相关的知识,希望能为你提供帮助。
在实际的应用开发过程中常常会遇到。在文本的不同部分显示一些不同的字体风格
的信息如:文本的字体、大小、颜色、样式、以及超级链接等。
普通情况下,TextView中的文本都是一个样式。对于类似
的情况。能够借助SpannableString或SpannableStringBuilder对象来实现以上设置。
【Android开发之SpannableString具体解释】SpannableString与SpannableStringBuilder都能够将某段文本设置成一个Span,在android中。Span表示一段文本的效果,比如,链接形式、图像、带背景的文本等。仅仅是不同的是SpannableStringBuilder能够改动文本的内容。
磨刀不误砍柴工,接下来先让我们熟悉一下SpannableString类。
类结构:extends
Object
implements
GetChars
Spannable
CharSequence
java.lang.Object |
|
? |
android.text.SpannableString |
SpannableStringBuilder
。构造方法:
Public Constructors |
|
|
经常使用公有方法:
Public Methods |
|
final char |
charAt(int i) 返回指定索引位置的字符,第一个字符的索引为0。 |
boolean |
equals(Object
o) Compares this instance with the specified object and indicates if they are equal. 比較这个实例与指定的对象,假设相等则返回true。 |
final void |
getChars(int start, int end, char[] dest, int off) 和String.getChars()方法相似 :从指定字符数组中复制字符。start 開始位置,end结束位置。off偏移量。 |
int |
getSpanEnd(Object
what) 获取what对象在SpannableString对象中的结束位置。 假设没有匹配返回-1。 |
int |
getSpanStart(Object
what) 获取what对象在SpannableString对象中的開始位置。 假设没有匹配返回-1。 |
final int |
length() 返回此序列中的字符数。 |
void |
removeSpan(Object
what) 从文本的范围中删除指定的对象。 |
void |
setSpan(Object
what,
int start, int end, int flags) 设置一个Span对象。 what |
void setSpan(Object what, int start, int end, int flags)
设置一个Span对象。当中第一个參数what:表示一段文本的效果,它能够接受例如以下属性:
属性名 |
说明 |
BackgroundColorSpan |
背景色 |
ClickableSpan |
文本可点击,有点击事件 |
ForegroundColorSpan |
文本颜色(前景色) |
MaskFilterSpan |
修饰效果,如模糊(BlurMaskFilter)浮雕(EmbossMaskFilter) |
MetricAffectingSpan |
父类,一般不用 |
RasterizerSpan |
光栅效果 |
StrikethroughSpan |
删除线(中划线) |
SuggestionSpan |
相当于占位符 |
UnderlineSpan |
下划线 |
AbsoluteSizeSpan |
绝对大小(文本字体) |
DynamicDrawableSpan |
设置图片,基于文本基线或底部对齐。 |
ImageSpan |
图片 |
RelativeSizeSpan |
相对大小(文本字体) |
ReplacementSpan |
父类。一般不用 |
ScaleXSpan |
基于x轴缩放 |
StyleSpan |
字体样式:粗体、斜体等 |
SubscriptSpan |
下标(数学公式会用到) |
SuperscriptSpan |
上标(数学公式会用到) |
TextAppearanceSpan |
文本外貌(包含字体、大小、样式和颜色) |
TypefaceSpan |
文本字体 |
URLSpan |
文本超链接 |
Spanned.SPAN_EXCLUSIVE_INCLUSIVE:在 Span前面输入的字符不应用 Span的效果,在后面输入的字符应用Span效果。
Spanned.SPAN_INCLUSIVE_EXCLUSIVE:在 Span前面输入的字符应用 Span 的效果。在后面输入的字符不应用Span效果。
Spanned.SPAN_INCUJSIVE_INCLUSIVE:在 Span前后输入的字符都应用 Span 的效果。
应用实例:因为篇幅限制关于SpannableString的应用实例可參考:Android开发之TextView高级应用在此就不再赘述了。
推荐阅读
- 量化字符串(安卓权威编程 13.7挑战练习-优化字符串资源显示)
- android 3G移植
- graph driver-device mapper-03thin pool基本操作
- 安卓权威编程 挑战练习13.6
- 打印机打印方式
- 图 华为3COM规范访问控制下文初识
- IPX 访问控制下文
- IP访问控制下文
- 访问控制—保护核心设备中的核心资源