Android开发之SpannableString具体解释

在实际的应用开发过程中常常会遇到。在文本的不同部分显示一些不同的字体风格的信息如:文本的字体、大小、颜色、样式、以及超级链接等。

普通情况下,TextView中的文本都是一个样式。对于类似的情况。能够借助SpannableString或SpannableStringBuilder对象来实现以上设置。

SpannableString与SpannableStringBuilder都能够将某段文本设置成一个Span,在Android中。Span表示一段文本的效果,比如,链接形式、图像、带背景的文本等。仅仅是不同的是SpannableStringBuilder能够改动文本的内容。

磨刀不误砍柴工,接下来先让我们熟悉一下SpannableString类。

类结构:



extends Object

implements 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


文本超链接

第二个和第三个參数分别表示文本中要设置成Span的某段文本的起始位置和终止位置的下一个字符的位置。也就是start和end。最后一个參数(flags)是一个标志。还能够设置例如以下几个类似的值:

Spanned.SPAN_EXCLUSIVE_INCLUSIVE:在 Span前面输入的字符不应用 Span的效果,在后面输入的字符应用Span效果。

Spanned.SPAN_INCLUSIVE_EXCLUSIVE:在 Span前面输入的字符应用
Span 的效果。在后面输入的字符不应用Span效果。

Spanned.SPAN_INCUJSIVE_INCLUSIVE:在 Span前后输入的字符都应用
Span 的效果。

应用实例:

因为篇幅限制关于SpannableString的应用实例可參考:Android开发之TextView高级应用在此就不再赘述了。

时间: 2024-11-06 03:51:46

Android开发之SpannableString具体解释的相关文章

Android开发之SpannableString详解

在实际的应用开发过程中经常会遇到,在文本的不同部分显示一些不同的字体风格的信息如:文本的字体.大小.颜色.样式.以及超级链接等.一般情况下,TextView中的文本都是一个样式,对于类似的情况,可以借助SpannableString或SpannableStringBuilder对象来实现以上设置. SpannableString与SpannableStringBuilder都可以将某段文本设置成一个Span,在Android中,Span表示一段文本的效果,例如,链接形式.图像.带背景的文本等.只

Android开发之TextView高级应用

我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.下面就和大家分享一下TextView的一些使用技巧. Android中设置文本样式的几种方法: 1.将android:autoLink属性值设为true.系统会自动识别E-mail.电话.网址等特殊文本. 2.使用Html标签,例如,<font>.<img>等.不要设置 android:autoLink 属性. 3.在Java代码中直接使用Span对象来设置文本样式.这种方法需要将文本

Android开发之InstanceState详解

Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceState(),并且在介绍这两个方法之后,再分别来实现使用InstanceState保存和恢复数据功能.Android实现屏幕旋转异步下载效果这样两个示例. 首先来介绍onSaveInstanceState() 和 onRestoreInstanceState() .关于这两个方法,一些朋友可能在Andr

android开发之-Android 开发之4.0界面设计原则-整理

设计原则: 一.让人着迷: 1.给人惊喜:使用漂亮的界面.精心的动画.适时的音乐. 2.真实的对象比按钮和菜单更有趣 这句话的意思是:使用描述描述性的图标作为快捷方式,界面美观 当然这个快捷方式是描述一个实体的,像一个人,不是扁平化的 3.个性化设计 提供个性化设计,提高亲切感和控制感.多设计几套个性化方案 4.记住人们的使用习惯,不要重复问 记住人们的使用习惯,不要重复问.多使用可以自动记住的控件,Autocomplete控件,不要每次询问操作 二.简单我的生活 1.使用简单词.短句子. 人们

android开发之notification通知完全解析

android开发之notification通知完全解析 本文主要介绍的是notification通知的使用,通过阅读此文,你可以了解,在android开发中,notification通知各种使用方法.本文的notification主要是针对android4.4以下的版本. 现在,我们来看一下,如何实现一个notification.估计大家现在最常用的做法是下面这种: Notification notification = new Notification(R.drawable.ic_launc

【转】Android 开发之旅:view的几种布局方式及实践

引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用“Hello World!”程序来实践证明了.在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题:View的几种布局显示方法,以后就不会在针对布局方面做过多的介绍.View的布局显示方式有下面几种:线性布局(Linear Layout).

【转】Android开发之旅:组件生命周期

组件生命周期(一) 引言 应用程序组件有一个生命周期——一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生命周期将讨论活动.服务.广播接收者的生命周期——包括在生命周期中他们可能的状态.通知状态改变的方法.及这些状态的组件寄宿的进程被终结和实例被销毁的可能性. 本文主要讨论活动的生命周期及他们可能的状态.通知状态改变的方法.分为以下三部分: 1.活动生命周期 2.保存活动状态 3.协

Android开发之InstanceState详解(转)---利用其保存Activity状态

Android开发之InstanceState详解 本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceState(),并且在介绍这两个方法之后,再分别来实现使用InstanceState保存和恢复数据功能.Android实现屏幕旋转异步下载效果这样两个示例. 首先来介绍onSaveInstanceState() 和 onRestoreInstanceState() .关于这两个方法,一些朋友可能在Andr

Android开发之Tween(补间动画)完全解析(下)

欢迎转载,转载请注明出处:http://blog.csdn.net/dmk877/article/details/51980734 在上一篇文章中,我们详细讨论了Tween动画的xml的实现以及interpolator的使用,相信通过上篇文章大家对Tween动画的xml属性的配置会有一个详细的理解,当然这篇文章也是承接上篇文章,所以强烈建议先阅读上篇文章:Android开发之Tween(补间动画)完全解析(上),这篇文章将从代码的角度实现上篇文章的效果.如有疑问请留言,如有谬误欢迎批评指正. T