Android文本样式——下

原创 2012年10月25日 16:37:34

继续就android的文本样式进行分析:

10.MaskFilterSpan

MaskFilterSpan,滤镜样式,只有一个构造函数:
MaskFilterSpan(MaskFilter filter):参数filter,滤镜样式。
说明:
在android系统里,MaskFilter提供了两个子类,BlurMaskFilter和EmbossMaskFilter,分别用来制作模糊效果和浮雕效果。
效果:

11.QuoteSpan

QuoteSpan,引用样式,在文本左侧添加一条表示引用的竖线,该类有3个构造函数:
QuoteSpan():无参构造,默认颜色为蓝色。
QuoteSpan(int color):参数color,颜色值。
QuoteSpan(Parcel src):包含颜色值信息的包装类。使用:
Parcel p = Parcel.obtain();
p.writeInt(Color.BLACK);
p.setDataPosition(0);
QuoteSpan qs = new QuoteSpan(p);
效果:

12.RasterizerSpan

RasterizerSpan,字面义为光栅化,实际效果不明显,待完善。一个构造函数:
RasterizerSpan(Rasterizer r):Rasterizer只有一个系统定义了的子类LayerRasterizer

13.RelativeSizeSpan

RelativeSizeSpan,相对大小,指相对于文本设定的大小的相对比例,如果没有设定则采用系统默认值。该类有两个构造函数:
RelativeSizeSpan(float proportion):参数proportion,比例值。如果文字设定大小为A,则显示出来的大小为A×proportion。
RelativeSizeSpan(Parcel src):参数src,包含了比例值信息的包装类。使用:
Parcel p = Parcel.obtain();
p.writeFloat(2.5f);
p.setDataPosition(0);
RelativeSizeSpan rss = new RelativeSizeSpan(p);
效果:

14.ScaleXSpan

ScaleXSpan,横向缩放样式,将字体按比例进行横向缩放。构造函数:
ScaleXSpan(float proportion):参数proportion,缩放比例。如果字体设置的大小为A,则实际显示为A×proportion。
ScaleXSpan(Parcel src):参数src,包含了缩放比例信息的包装类。使用:
Parcel p = Parcel.obtain();
p.writeFloat(2.5f);
p.setDataPosition(0);
ScaleXSpan rss = new ScaleXSpan(p);
效果:

15.StrikethroughSpan

StrikethroughSpan,删除线样式。该类有两个构造函数:
StrikethroughSpan()和SrickkethroughSapn(Parcel src)。但有参数的构造函数并未对src参数做处理,
public StrikethroughSpan(Parcel src) {
}
因此这两个构造函数完全是同样的效果。

16.StyleSpan

StyleSpan,主要由正常、粗体、斜体和同时加粗倾斜四种样式,常量值定义在Typeface类中。构造函数:
StyleSpan(int style):参数style,定义在Typeface中的常量。
StyleSpan(Parcel src):参数src,包含字体信息的包装类,用法:
Parcel p = Parcel.obtain();
p.writeInt(Typeface.BOLD_ITALIC);
p.setDataPosition(0);
StyleSpan ss = new StyleSpan(p);
效果:

17.SubscriptSpan

SubscriptSpan,脚注样式,比如化学式的常见写法,当然,还可以对脚注的文字做一定的缩放。构造函数:
SubscriptSpan():无参构造。
SubscriptSpan(Parcel src):一参构造,参数src并未起任何作用,源码中为:
public SuperscriptSpan(Parcel src) {
}
效果:

18.SuperscriptSpan

SuperscriptSpan,上标样式,比如数学上的次方运算,当然,还可以对上标文字进行缩放。构造函数:
SuperscriptSpan():无参构造。
SuperscriptSpan(Parcel src):一参构造,参数src并未起任何作用,源码中为:
public SuperscriptSpan(Parcel src) {
}
效果:

19.TabStopSpan

TabStopSpan.Standard,制表位偏移样式,距离每行的leading margin的偏移量,据测试在首行加入制表符时才产生效果。构造函数:
TabStopSpan.Standard(int where):参数where,偏移量。
效果:

20.TextAppearanceSpan

TextAppearanceSpan,使用style文件来定义文本样式,该类有4个构造函数:
TextAppearanceSpan(Context context, int appearance):参数context,传入的上下文,参数appearance,引用的样式表,如R.style.my_style。
TextAppearanceSpan(Context context, int appearance, int colorList):参数context,使用的上下文,参数appearance,引用的样式表,如R.style.my_style,参数colorList,使用方式未知,如果设置为小于0,则参数将不产生效果。
TextAppearanceSpan(String family, int style, int size,ColorStateList color, ColorStateList linkColor):参数family,字体,仅支持系统自带的三种字体,MONOSPACE、SERIF和SANS,参数style,TypeFace中定义的字体样式,BOLD、ITALIC等,参数size,字体大小,参数color,字体颜色,参数linkColor,使用方式未知。TextAppearanceSpan(Parcel src):参数src,含有样式信息的包装类,样式信息参照5参构造。使用:
Parcel p = Parcel.obtain();
p.writeString(\"SERIF\");
p.writeInt(Typeface.BOLD_ITALIC);
p.writeInt(10);
try {
    ColorStateList colorlist = ColorStateList.createFromXml(ctx.getResources(),ctx.getResources().getXml(R.drawable.parcelcolorlist));
    p.writeInt(1);
    colorlist.writeToParcel(p, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
    p.writeInt(1);
    colorlist.writeToParcel(p, Parcelable.PARCELABLE_WRITE_RETURN_VALUE);
} catch (Exception e) {
    e.printStackTrace();
}
p.setDataPosition(0);
TextAppearanceSpan tas = new TextAppearanceSpan(p);
注:在这个设置中style似乎并未起到作用,另外关于这个类的colorList和linkColor参数的使用尚不明了,有待解答。
效果:

21.TypefaceSpan

TypefaceSpan,字体样式,可以设置不同的字体,比如系统自带的SANS_SERIF、MONOSPACE和SERIF。构造函数:
TypefaceSpan(String family):参数family,字体的值,以字符串表示。
TypefaceSpan(Parcel src): 参数src,包含字体family信息的包装类,使用如下:
Parcel p = Parcel.obtain();
p.writeString(\"SERIF\");
p.setDataPosition(0);
TypefaceSpan ts = new TypefaceSpan(p);
 效果:

22.UnderlineSpan

UnderlineSpan,下划线样式,给一段文字加上下划线。构造函数:
UnderlineSpan(): 无参构造。
UnderlineSpan(Parcel src):一参构造, 与无参构造效果相同,构造中未对src做处理。源码:
public UnderlineSpan(Parcel src) {
}
效果:

23.URLSpan

URLSpan,可以打开一个链接。两个构造函数:
URLSpan(String url):参数url,链接地址。
URLSpan(Parcel src):参数src,包含链接地址信息的包装类,使用如下:
Parcel p = Parcel.obtain();
p.writeString("http://www.sina.com.cn");
p.setDataPosition(0);
URLSpan us = new URLSpan(p);
效果:

四、标注:

以上效果均在android2.3中测试,以后新增的几个类并未做说明,上面的类中还有几处使用的不甚明了的地方,希望能够尽快的完善。
以上所有的效果均写在了一个APK里,源码已上传至Android文本样式

Android文本样式——上

在android中,有时候需要对文本进行各种特别的设置,比如颜色、大小、首行缩进,或者是在一段文本中加入图片,甚至是书写一些特殊的公式。如果通过布局文件使用多个控件来实现,一方面会使的使用起来特别的复...
  • lixin84915
  • lixin84915
  • 2012年10月25日 15:35
  • 8229

【Android---项目中】TextView设置字体样式及粗细

通过布局设置: android:textStyle="bold" android:typeface="sans" 在Android SDK中使用Typeface...
  • tablle
  • tablle
  • 2016年07月01日 18:23
  • 20968

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

textAppearance的属性设置 android:textAppearance="?android:attr/textAppearanceSmall" android:textAppear...
  • jaycee110905
  • jaycee110905
  • 2013年04月05日 19:40
  • 67814

49.Android中各种Span的用法

49.Android 各种SpanAndroid 各种Span 前言 SpannableStringBuilder URLSpan UnderlineSpan TypefaceSpan TextApp...
  • qq_16430735
  • qq_16430735
  • 2015年12月29日 17:15
  • 17348

TextView---自定义样式

有时候需要自定义一个按钮,用textview也可以实现 (1)创建一个供TextView使用的背景selector并且放到drawable文件夹下面 ...
  • u012611418
  • u012611418
  • 2016年02月15日 10:59
  • 846

如何实现多样式富文本?

对于不同颜色、大小、字体的文字,介绍两种富文本显示方式。
  • pw963852741pw
  • pw963852741pw
  • 2017年02月08日 20:57
  • 620

Android Textview和Edittext文本选中样式修改实战

修改Textview和Edittext文本选中样式今天接到一个任务,因为现在的上线APP的搜索框在文本被选中的时候,高亮背景色和指示器的颜色与主题颜色相同,因此导致了用户使用上的困难,并且文本功能菜单...
  • Kinsomy
  • Kinsomy
  • 2017年11月28日 12:46
  • 81

Android文本样式(一)

在android中,有时候需要对文本进行各种特别的设置,比如颜色、大小、首行缩进,或者是在一段文本中加入图片,甚至是书写一些特殊的公式。如果通过布局文件使用多个控件来实现,一方面会使的使用起来特别的复...
  • qq_24697659
  • qq_24697659
  • 2015年11月13日 11:05
  • 362

Android文本样式(二)

继续就android的文本样式进行分析: 10.MaskFilterSpan MaskFilterSpan,滤镜样式,只有一个构造函数: MaskFilterSpan(MaskFilter filt...
  • qq_24697659
  • qq_24697659
  • 2015年11月13日 11:12
  • 345

Android文本样式——下

继续就android的文本样式进行分析: 10.MaskFilterSpan MaskFilterSpan,滤镜样式,只有一个构造函数: MaskFilterSpan(MaskFilter ...
  • u013360656
  • u013360656
  • 2015年08月31日 09:09
  • 673
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android文本样式——下
举报原因:
原因补充:

(最多只允许输入30个字)