Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之SpannableString詳解

Android開發之SpannableString詳解

編輯:關於Android編程

在實際的應用開發過程中經常會遇到,在文本的不同部分顯示一些不同的字體風格的信息如:文本的字體、大小、顏色、樣式、以及超級鏈接等。一般情況下,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 的效果。

未完待續... ....

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved