iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 29
0

昨天我們將需要處理的文字都丟進 SpannableStringBuilder 裡了,今天我們先不處理實作的部分,先對參數做介紹。

文字丟進去後,接下來是要對文字做變色、大小....等等的變化,而且若要向上圖那樣分好幾段勢必要有參數可以控制起始點與終點。

確認以上需求後找到了這個方法

setSpan(Object what, int start, int end, int flags)

來一一解釋一下參數的意思

  1. what: 要對文字做什麼變換,有相對應的物件可以使用,補充在最後。
  2. start: what 要做的變換的起始點,有包含這個位置。
  3. end: what 要做的變換的終點,不包含這個位置。
  4. flags: 有以下四種 flag
  • Spannable.SPANEXCLUSIVEINCLUSIVE:在 Span前面输入的文字不適用 Span的效果,在後面输入的文字適用Span效果。
  • Spannable.SPAN_INCLUSIVE_EXCLUSIVE:在 Span前面输入的文字適用 Span 的效果,在後面输入的文字不適用Span效果。
  • Spannable.SPAN_INCUJSIVE_INCLUSIVE:在 Span前後输入的文字都適用 Span 的效果。
  • Spannable.SPAN_EXCLUSIVE_EXCLUSIVE:前後都不包括。

而 what 能使用的 object 目前整理如下。

  • BackgroundColorSpan : 文字背景色
  • ForegroundColorSpan : 文字顏色
  • MaskFilterSpan : 修飾效果,有兩種效果 BlurMaskFilter(模糊效果)、EmbossMaskFilter(浮雕效果)
  • RasterizerSpan : 光柵效果
  • StrikethroughSpan : 刪除線
  • SuggestionSpan : 相當於佔位
  • UnderlineSpan : 底線
  • AbsoluteSizeSpan : 文字大小(絕對大小)
  • DynamicDrawableSpan : 圖片,基於文字底線。
  • ImageSpan : 圖片
  • RelativeSizeSpan : 文字大小(相對大小)
  • ScaleXSpan : 基於X軸縮放
  • StyleSpan : 文字樣式:粗體、斜體等
  • SubscriptSpan : 下標(通常數學式或化學式才會用到)
  • SuperscriptSpan : 上標(通常數學公式才會用到)
  • TextAppearanceSpan : 文字外型(包括字體、大小、樣式和顏色)
  • TypefaceSpan : 文字
  • URLSpan : 超連結
  • ClickableSpan : 點擊事件

上一篇
[Day 28] Android 實作 - SpannableStringBuilder(1)
下一篇
[Day 30] Android 實作 - 鍵盤與 layout 的相對位置
系列文
Android心得筆記×Kotlin語法初探 不是新手村 是嬰兒村30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言