Spannable, SpannableString、SpannableStringBuilder
一、Spanned and Spannable
1.Spanned
這是一個針對文字的介面,用來標記在文字的某些範圍之類,附屬了哪些物件。
public interface Spanned extends CharSequence
該介面是繼承了CharSequence,所以在android平臺可以直接當做CharSequence來使用,並且增加了很多特殊的文字處理功能。
2.Spannable
public interface Spannable extends Spanned
該介面繼承自Spanned,包含2個介面方法,和一個工廠類
public void setSpan(Object what, int start, int end, int flags);
public void removeSpan(Object what);
該介面定義了一個工廠類,首先想到的是減少與實現類的耦合,提高可維護性。
轉載至http://www.ithao123.cn/content-101951.html
二、SpannableString、SpannableStringBuilder
SpannableString像一個String一樣,而SpannableStringBuilder則更像是StringBuilder。
詳見http://blog.csdn.net/harvic880925/article/details/38984705
三、SetSpan()
void setSpan (Object what, int start, int end, int flags)
引數說明:
object what :對應的各種Span;
int start:開始應用指定Span的位置,索引從0開始
int end:結束應用指定Span的位置,特效並不包括這個位置。比如如果這裡數為3(即第4個字元),第4個字元不會有任何特效。
int flags:取值有如下四個
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE:前後都不包括,即在指定範圍的前面和後面插入新字元都不會應用新樣式
Spannable.SPAN_EXCLUSIVE_INCLUSIVE :前面不包括,後面包括。即僅在範圍字元的後面插入新字元時會應用新樣式
Spannable.SPAN_INCLUSIVE_EXCLUSIVE :前面包括,後面不包括。
Spannable.SPAN_INCLUSIVE_INCLUSIVE :前後都包括。
四、各種Span設定
要應用一個Span總共分三步:
1、構造String
2、構造Span
3、利用SetSpan()對指定範圍的String應用這個Span
舉一個栗子:
//hahahaha你好好你好好
SpannableString ss = new SpannableString(mTextView.getText());
ForegroundColorSpan foregroundColor = new ForegroundColorSpan(Color.CYAN);
ss.setSpan(foregroundColor,3,5, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
mTextView.setText(ss);
效果
注意:flag的作用是指插入新的字元後,是否跟設定的樣式一致。
其他:字型背景顏色(BackgroundColorSpan),字型大小(AbsoluteSizeSpan),粗體、斜體(StyleSpan),刪除線(StrikethroughSpan),下劃線(UnderlineSpan),圖片置換(ImageSpan)
轉載至 http://blog.csdn.net/harvic880925/article/details/38984705
相關文章
- Android SpannableString和SpannableStringBuilder教程AndroidUI
- Android之SpannableString、SpannableStringBuilder總結AndroidUI
- android強大的SpannableStringBuilderAndroidUI
- Android UI——SpannableString詳細解析AndroidUI
- EditView+SpannableString+ImageSpan實現圖文混編View
- Android:使用SpannableString實現圖片替換相應的文字Android
- Android 使用SpannableString在TextView中插入表情、超連結、文字變大、加粗AndroidTextView