SpannableString属性详解

1、BackgroundColorSpan 背景色 
    2、ClickableSpan 文本可点击,有点击事件
    3、ForegroundColorSpan 文本颜色(前景色)
    4、MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)
    5、MetricAffectingSpan 父类,一般不用
    6、RasterizerSpan 光栅效果
    7、StrikethroughSpan 删除线(中划线)
    8、SuggestionSpan 相当于占位符
    9、UnderlineSpan 下划线
    10、AbsoluteSizeSpan 绝对大小(文本字体)
    11、DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。
    12、ImageSpan 图片
    13、RelativeSizeSpan 相对大小(文本字体)
    14、ReplacementSpan 父类,一般不用
    15、ScaleXSpan 基于x轴缩放
    16、StyleSpan 字体样式:粗体、斜体等
    17、SubscriptSpan 下标(数学公式会用到)
    18、SuperscriptSpan 上标(数学公式会用到)
    19、TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)
    20、TypefaceSpan 文本字体

21、URLSpan 文本超链接

BackgroundColorSpan 背景色

SpannableString spanText = new SpannableString("benzlocke");

spanText.setSpan(new BackgroundColorSpan(Color.GREEN), 0, spanText.length(),

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

ForegroundColorSpan 文本颜色(前景色)

spanText = new SpannableString("benzlocke");

spanText.setSpan(new ForegroundColorSpan(Color.BLUE), 6, spanText.length(),

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)

spanText = new SpannableString("benzlocke");

int length = spanText.length();

//模糊(BlurMaskFilter)

MaskFilterSpan maskFilterSpan = new MaskFilterSpan(new BlurMaskFilter(3, Blur.OUTER));

spanText.setSpan(maskFilterSpan, 0, length - 10, Spannable.

SPAN_INCLUSIVE_EXCLUSIVE);

//浮雕(EmbossMaskFilter)

maskFilterSpan = new MaskFilterSpan(new EmbossMaskFilter(new float[]{1,1,3}, 1.5f, 8, 3));

spanText.setSpan(maskFilterSpan, length - 10, length, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

RasterizerSpan 光栅效果

spanText = new SpannableString("StrikethroughSpan");

spanText.setSpan(new StrikethroughSpan(), 0, 7, Spannable.

SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

StrikethroughSpan 删除线

spanText = new SpannableString("StrikethroughSpan");

spanText.setSpan(new StrikethroughSpan(), 0, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

SuggestionSpan

相当于占位符,一般用在EditText输入框中。当双击此文本时,会弹出提示框选择一些建议(推荐的)文字,选中的文本将替换此占位符。在输入法上用的较多。

UnderlineSpan 下划线

spanText = new SpannableString("UnderlineSpan");

spanText.setSpan(new UnderlineSpan(), 0, spanText.length(),

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

AbsoluteSizeSpan 绝对大小(文本字体)

spanText = new SpannableString("AbsoluteSizeSpan");

spanText.setSpan(new AbsoluteSizeSpan(20, true), 0, spanText.length(),

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。

DynamicDrawableSpan drawableSpan = new DynamicDrawableSpan(DynamicDrawableSpan.ALIGN_BASELINE) {

@Override

public Drawable getDrawable() {

Drawable d = getResources().getDrawable(R.drawable.ic_launcher);

d.setBounds(0, 0, 50, 50);

return d;

}

};

DynamicDrawableSpan drawableSpan2 = new DynamicDrawableSpan(

DynamicDrawableSpan.ALIGN_BOTTOM) {

@Override

public Drawable getDrawable() {

Drawable d = getResources().getDrawable(R.drawable.ic_launcher);

d.setBounds(0, 0, 50, 50);

return d;

}

};

spanText.setSpan(drawableSpan, 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

spanText.setSpan(drawableSpan2, 7, 8, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

//左边图片基于基线对齐,右边图片基于底部对齐

ImageSpan 图片

spanText = new SpannableString("ImageSpan");

Drawable d = getResources().getDrawable(R.drawable.ic_launcher);

d.setBounds(0, 0, 50, 50);

spanText.setSpan(new ImageSpan(d), 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

//和DynamicDrawableSpan差别不大

RelativeSizeSpan 相对大小(文本字体)

spanText = new SpannableString("RelativeSizeSpan");

//参数proportion:比例大小

spanText.setSpan(new RelativeSizeSpan(2.5f), 3, 4,

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

//相对大小的比例是基于当前文本字体大小

ScaleXSpan 基于x轴缩放

spanText = new SpannableString("benzlocke");

//参数proportion:比例大小

spanText.setSpan(new ScaleXSpan(3.8f), 3, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

StyleSpan 字体样式:粗体、斜体等

spanText = new SpannableString("benzlocke");

//Typeface.BOLD_ITALIC:粗体+斜体

spanText.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 3, 7,

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

SubscriptSpan 下标(数学公式会用到)

spanText = new SpannableString("benzlocke");

spanText.setSpan(new SubscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

SuperscriptSpan 上标(数学公式会用到)

spanText = new SpannableString("benzlocke");

spanText.setSpan(new SuperscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)

spanText = new SpannableString("benzlocke");

//若需自定义TextAppearance,可以在系统样式上进行修改

spanText.setSpan(new TextAppearanceSpan(this, android.R.style.TextAppearance_Medium), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

//系统还提供了相关值TextAppearance_Small, TextAppearance_Large等。如有需要可在以上样式基础上修改。

TypefaceSpan 文本字体

spanText = new SpannableString("benzlocke");

//若需使用自定义字体,可能要重写类TypefaceSpan

spanText.setSpan(new TypefaceSpan("monospace"), 3, 10,

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

//关于自定义字体的设置,后面将介绍如何使用

URLSpan 文本超链接

spanText = new SpannableString("benzlocke");

spanText.setSpan(new URLSpan("http://orgcent.com"), 10, spanText.length(),

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

mTVText.append("\n");

mTVText.append(spanText);

//让URLSpan可以点击

mTVText.setMovementMethod(new LinkMovementMethod());

时间: 2024-07-29 17:03:08

SpannableString属性详解的相关文章

【转】SpannableString属性详解

1.BackgroundColorSpan 背景色     2.ClickableSpan 文本可点击,有点击事件    3.ForegroundColorSpan 文本颜色(前景色)    4.MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter).浮雕(EmbossMaskFilter)    5.MetricAffectingSpan 父类,一般不用    6.RasterizerSpan 光栅效果    7.StrikethroughSpan 删除线(中划线) 

css动画-animation各个属性详解(转)

CSS3的animation很容易就能实现各种酷炫的动画,虽然看到别人的成果图会觉得很难,但是如果掌握好各种动画属性,做好酷炫吊炸天的动画都不在话下,好,切入正题. 一.动画属性: 动画属性包括:①animation-name,②animation-duration,③animation-timing-function, 以下是各属性详解: 1.animation-name:指定要绑定到选择器的关键帧的名称. 2.animation-duration:定义动画完成一个周期需要多少秒或毫秒 3.a

jQuery Event.which 属性详解

jQuery Event.which 属性详解 which属性用于返回触发当前事件时按下的键盘按键或鼠标按钮. 对于键盘和鼠标事件,该属性用于确定你按下的是哪一个键盘按键或鼠标按钮. which属性对DOM原生的event.keyCode和event.charCode进行了标准化. 适用的事件类型主要有键盘事件:keypress.keydown.keyup,以及鼠标事件:mouseup.mousedown. 该属性属于jQuery的Event对象(实例). 语法 jQuery 1.1.3 新增该

WPF依赖属性详解

WPF依赖属性详解 WPF 依赖属性 英文译为 Dependency Properties,是WPF引入的一种新类型的属性,在WPF中有着极为广泛的应用,在WPF中对于WPF Dependency Properties 的使用贯穿样式的使用,数据绑定,动画等等,在刚刚接触Dependency Properties的时候可能觉得有些奇怪,但是,当你了解他要解决的问题的时候,你可能就不觉得奇怪了.Dependency Properties第一个要解决的问题就是控件的属性共享问题,由于大部分的WPF控

Hibernate fetch属性详解

主要参考 :http://4045060.blog.51cto.com/4035060/1088025 一.hibernate抓取策略(单端代理的批量抓取fetch=select(默认)/join) 1)保持默认,同fetch="select" <many-to-one name="group" column="group_id" fetch="select" /> 另外发送一条select语句抓取当前对象关联实体

MWPhotoBrowser 属性详解 和代理解释

--------0.MWPhoto简单属性解释---------------- MWPhoto *photo = [MWPhoto photoWithURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3629/3339128908_7aecabc34b.jpg"]]; photo.caption = @"在将photo添加到数组中时,可以在这里设置标题名字"; photo = [MWPhotophot

Android textAppearance的属性设置及TextView属性详解

textAppearance的属性设置 android:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceMedium" android:textAppearance="?android:attr/textAppearanceLarge" TextView属性详解 android:autoLi

Shape 各种属性详解

本文来自:http://blog.csdn.net/brokge/article/details/9713041 简介: 作用:XML中定义的几何形状 位置:res/drawable/文件的名称.xml 使用的方法: Java代码中:R.drawable.文件的名称 XML中:Android:background="@drawable/文件的名称" 属性: <shape>形状 Android:shape=["rectangle" | "oval

HTML中META属性详解 转载自 hero_213的博客

HTML中META属性详解 meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码: <head> <meta   http-equiv= "content-Type "   content= "text/html;   charset=gb2312 "> </head>         也许你认为这些代码可有可无.其实如果你能够用好meta标签,会给你带来意想不到的效果,例如加