編輯:關於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.概述 Android中關於控制開關和頁面/狀態切換的使用場景還是比較多的。源生做的支持也有比如RadioGroup 和Tabhost等。這裡准備通過自定
官方原文鏈接本文將介紹Services的定義、創建、啟動、綁定、前台Service等相關內容。Service是Android中一個類,它是Android四大組件之一,使用
前言:本文主要描述Android BLE的一些基礎知識及相關操作流程,不牽扯具體的業務實現,其中提供了針對廣播包及響應包的解析思路,希望對正在或即將面臨Android B
今天了解了一下android客戶端與服務端是怎樣交互的,發現其實跟web有點類似吧,然後網上找了大神的登陸示例,是基於IntentService的 1.後台