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高级应用在此就不再赘述了。
Android开发之SpannableString具体解释相关推荐
- Android开发之TextView高级应用
Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...
- android studio输入框下划线,Android开发之TextView的下划线添加
Android开发之TextView高级应用 Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大 ...
- Android开发之旅:组件生命周期(二)
引言 应用程序组件有一个生命周期--一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生 ...
- Android开发之旅:HelloWorld项目的目录结构
引言 前面Android开发之旅:环境搭建及HelloWorld,我们介绍了如何搭建Android开发环境及简单地建立一个HelloWorld项目,本篇将通过HelloWorld项目来介绍Androi ...
- Android开发之仿QQ表情实现(上)
大家晚上好,,小鹿又来了..最近小鹿特别忙,忙到没时间发表博客了(注:以下内容过于简单请大家不要喷,仅提供初学者学习) 今天发表两篇文章,分别是讲解模拟QQ表情的实现,先给大家看效果图,,,, 开始了 ...
- android开发之onCreate( )方法详解
android开发之onCreate( )方法详解 onCreate( )方法是android应用程序中最常见的方法之一,那么,我们在使用onCreate()方法的时候应该注意哪些问题呢? 先看看Go ...
- android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序
android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序 在应用里使用了后台服务,并且在通知栏推送了消息,希望点击这个消息回到activity, ...
- android之json解析优化,Android开发之json解析
目前正在尝试着写app,发现看懂代码和能写出来差距很大,最关键的是java基础比较的差,因为只会python,java基础只学习了一个礼拜就过了.感觉java写出来的代码不如python简单明了. 上 ...
- android注册弹窗,Android开发之PopupWindow创建弹窗、对话框的方法详解
本文实例讲述了Android开发之PopupWindow创建弹窗.对话框的方法.分享给大家供大家参考,具体如下: 简介: PopupWindow 可创建类似对话框风格的窗口 效果: 使用方法: 使用P ...
最新文章
- 十几年后我才知道,嫁了一个硬核老公
- 实现自己的BeanFactory、AOP以及声明式事务
- 前端学习(2015)vue之电商管理系统电商系统之实现图片的预览效果
- step7设置pcpg_STEP7 PC/PG设置的疑惑
- Excel在表格框中插入对勾✅
- 拓端tecdat|R语言泰坦尼克号随机森林模型案例数据分析
- WebLogic 11gR1修改jdk版本
- C# 单例模式(转)
- ZUC加密算法实现-软件版本Java
- 军犬舆情每日热点:台湾海峡发生6.2级地震;泉州通报碳九泄漏事件处理结果
- 计算机中year函数怎么使用,excel2010中YEAR函数的使用方法
- [zz]2007年的152条牛人经典BT语录,强烈推荐!
- 无线路由器无法在计算机上设置,无线路由器设置管理地址无法打开解决方法
- 步进电机加速的c语言编程,关于步进电机S型加速程序编写
- 浅析智能驾驶的发展现状和未来趋势
- 地铁听书系列之“看破不说破,81个为人处事潜规则”8月圆满收尾20220831
- 毕设中自己遇到的那些问题
- Http跨站点请求伪造解决方案
- 360音乐搜索使用讲解说明
- 嵌入式在军工卫星应用手持终端领域的应用