SpannableStringBuilder
来源:互联网 发布:联通关闭2g网络 编辑:程序博客网 时间:2024/05/17 21:49
一般情况下Android中显示文本一般使用TextView,有些时候文本包含一些特殊的字符图片或者同一文本的的样式、颜色不同,例如:
上图共有两个TextView,每个TextView的文本的字体颜色分为两部分,箭头一个颜色,文字一个颜色,这样便无法直接在TextView所在的xml中通过标签设置,这个时候便用到了SpannableStringBuilder了。先看一下这个类的继承关系:
android.text
类 SpannableStringBuilder
java.lang.Object android.text.SpannableStringBuilder
- 所有已实现的接口:
- Editable,GetChars,Spannable,Spanned,Appendable,CharSequence
因此这里可以直接使用setText方法来设置。下面看一下SpannableStringBuilder的一些方法:
setSpan(Object what, int start, int end, int flags) Mark the specified range of text with the specified object.第一个参数:what是具体要实现的效果的样式,有好多种常用的有:SubscriptSpan 下标、SuperscriptSpan 上标、URLSpan、UnderlineSpan、ImageSpan、ForegroundColorSpan背景颜色。
start和end是需要使用what样式的文本的位置。
flags是参数系统提供了4个常量,主要是决定了是否包含start、end所在的下标字符
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE ---> 不包含两端start和end所在的端点
Spanned.SPAN_EXCLUSIVE_INCLUSIVE ---> 不包含端start,但包含end所在的端点
Spanned.SPAN_INCLUSIVE_EXCLUSIVE ---> 包含两端start,但不包含end所在的端点
Spanned.SPAN_INCLUSIVE_INCLUSIVE ---> 包含两端start和end所在的端点
上面例子中的实现参考代码如下:
static ForegroundColorSpan redSpan = new ForegroundColorSpan(Color.RED);SpannableStringBuilder builder;int start = str.indexOf("↑");builder = new SpannableStringBuilder("↑hhsd");builder.setSpan(redSpan, start, start + 1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
0 0
- SpannableStringBuilder
- SpannableStringBuilder
- SpannableStringBuilder
- spannableStringBuilder
- SpannableStringBuilder
- android ---spannableStringBuilder
- android ---spannableStringBuilder
- android ---spannableStringBuilder
- android ---spannableStringBuilder
- SpannableStringBuilder SpannableString
- android SpannableStringBuilder
- SpannableStringBuilder 详解
- SpannableString、SpannableStringBuilder
- SpannableStringBuilder用法
- SpannableStringBuilder用法
- SpannableStringBuilder使用
- android之spannableStringBuilder
- SpannableStringBuilder的使用方法
- 并查集/图的划分
- 剑指offer(13):打印1到最大的n位数
- android中的通过网页链接打开本地app
- java反编译工具JD-GUI使用方法
- iOS 中的 NSTimer
- SpannableStringBuilder
- 用RAII技术管理资源及其泛型实现
- websocket上传参数中文乱码问题解决
- csdn 博客初始
- How to add dividers and spaces between items in RecyclerView?
- JVM GC算法 CMS 详解
- iOS 显示HTML文本
- android中怎么把控件隐藏
- 0基础学C#教程3--------winform中的vs工具箱不见了,怎么重新调出来?