Android开发之SpannableString具体解释
2017-07-15 11:50
253 查看
在实际的应用开发过程中常常会遇到。在文本的不同部分显示一些不同的字体风格的信息如:文本的字体、大小、颜色、样式、以及超级链接等。
普通情况下,TextView中的文本都是一个样式。对于类似的情况。能够借助SpannableString或SpannableStringBuilder对象来实现以上设置。
SpannableString与SpannableStringBuilder都能够将某段文本设置成一个Span,在Android中。Span表示一段文本的效果,比如,链接形式、图像、带背景的文本等。仅仅是不同的是SpannableStringBuilder能够改动文本的内容。
磨刀不误砍柴工,接下来先让我们熟悉一下SpannableString类。
implements GetChars Spannable CharSequence
说明:
void setSpan(Object what,
int start, int end, int flags)
设置一个Span对象。当中第一个參数what:表示一段文本的效果,它能够接受例如以下属性:
第二个和第三个參数分别表示文本中要设置成Span的某段文本的起始位置和终止位置的下一个字符的位置。也就是start和end。最后一个參数(flags)是一个标志。还能够设置例如以下几个类似的值:
Spanned.SPAN_EXCLUSIVE_INCLUSIVE:在 Span前面输入的字符不应用 Span的效果,在后面输入的字符应用Span效果。
Spanned.SPAN_INCLUSIVE_EXCLUSIVE:在 Span前面输入的字符应用
Span 的效果。在后面输入的字符不应用Span效果。
Spanned.SPAN_INCUJSIVE_INCLUSIVE:在 Span前后输入的字符都应用
Span 的效果。
普通情况下,TextView中的文本都是一个样式。对于类似的情况。能够借助SpannableString或SpannableStringBuilder对象来实现以上设置。
SpannableString与SpannableStringBuilder都能够将某段文本设置成一个Span,在Android中。Span表示一段文本的效果,比如,链接形式、图像、带背景的文本等。仅仅是不同的是SpannableStringBuilder能够改动文本的内容。
磨刀不误砍柴工,接下来先让我们熟悉一下SpannableString类。
类结构:
extends Objectimplements GetChars Spannable CharSequence
java.lang.Object | |
↳ | android.text.SpannableString |
类概述:
这类文本的内容是不变的。但标记对象能够被附加和分离。可变的文本,请參阅SpannableStringBuilder。
构造方法:
Public Constructors | |
SpannableString(CharSequence source) |
经常使用公有方法:
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高级应用在此就不再赘述了。相关文章推荐
- Android开发四大组件之Service(具体解释篇)
- 【Android开发经验】android:windowSoftInputMode属性具体解释
- Android开发之SpannableString详解
- Android高德地图开发具体解释
- Android开发之SpannableString详解(表情文字)
- 给 Android 开发人员的 RxJava 具体解释
- Android开发之SoundPool使用具体解释
- Android 开发SpannableString和SpannableStringBuilder的使用详解
- android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)
- Android开发之AudioManager(音频管理器)具体解释
- 【Android开发日记】之基础篇(一)——TextView+SpannableStringBuilder
- Android 最火高速开发框架AndroidAnnotations使用具体解释
- Android开发之WebView具体解释
- Android开发之DatePickerDialog与TimePickerDialog的功能和使用方法具体解释
- 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发具体解释
- Android 最火的高速开发框架AndroidAnnotations使用具体解释
- Android开发之AlarmManager具体解释
- 安卓开发——报错:android.text.SpannableString cannot be cast to java.lang.String
- 【Android 应用开发】 FastJson 使用具体解释
- Android开发学习之事件处理和Button具体解释