設定TextView 一行文字顯示不同的效果

2021-07-08 18:40:54 字數 2404 閱讀 6209

給spannable物件設定樣式:

在構建除了spannable 物件以後,就可以使用spannable.setspan(obj what, int start, int end, int flags)方法來進行樣式的設定了,其中引數what是具體樣式的實現物件,start則是該樣式開始的位置,end對應的是樣式結束的位置,引數 flags,定義在spannable中的常量,常用的有:

spanned.span_exclusive_exclusive — 不包含兩端start和end所在的端點 (a,b)

spanned.span_exclusive_inclusive — 不包含端start,但包含end所在的端點 (a,b]

spanned.span_inclusive_exclusive — 包含兩端start,但不包含end所在的端點 [a,b)

spanned.span_inclusive_inclusive— 包含兩端start和end所在的端點 [a,b]

但實際測試這其中似乎並未有差別,而在start和end相同的情況下,則只對start所在字元的當前行起作用。

三、樣式分析:

用來構建樣式的具體的類都在android.text.style包下,下面逐一進行分析。

1.absolutesizespan

顧名思義,absolutesizespan是指絕對尺寸,通過指定絕對尺寸來改變文字的字型大小。該類有三個建構函式:

absolutesizespan(int size)、absolutesizespan(int size, boolean dip)、absolutesizespan(parcel src)。

absolutesizespan(int size):引數size, 以size的指定的畫素值來設定文字大小。

absolutesizespan(int size, boolean dip):引數size,以size的指定畫素值來設定文字大小,如果引數dip為true則以size指定的dip為值來設定文字大小。

absolutesizespan(parcel src):引數src,包含有size和dip值的包裝類。在該構造中

public absolutesizespan(parcel src)

使用範例:

parcel p = parcel.obtain();

p.writeint(29);//字型大小

p.writeint(8);//是否是dip單位

p.setdataposition(0);

absolutesizespan ass = new absolutesizespan(p);

效果:2.alignmentspan.standard

alignmentspan.standard, 標準文字對齊樣式,該類有兩個建構函式,alignmentspan.standard(layout.alignment align)和alignmentspan.standard(parcel src)。alignmentspan.standard(layout.alignment align):引數align,layout.alignment型別的列舉值。包括居中、正常和相反三種情況。

alignmentspan.standard(parcel src):引數src,包含有標準字串的parcel類,其值應為」align_center」、」align_normal」 或」align_opposite」中的之一,對應layout.alignment列舉中的三個型別。使用示例:

parcel p = parcel.obtain();

p.writestring(\」align_center\」);

p.setdataposition(0);

alignmentspan.standard standard = new alignmentspan.standard(p);

效果:3.backgroundcolorspan

backgroundcolorspan,背景色樣式,顯然可以用來設定文字的背景色。該類有兩個建構函式,backgroundcolorspan(int color)和backgroundcolorspan(parcel src)。

backgroundcolorspan(int color):引數color,顏色值。

backgroundcolorspan(parcel src):引數src,包含顏色值資訊的包裝類,使用方法如下:

parcel p = parcel.obtain();

p.writeint(color.green);

p.setdataposition(0);

backgroundcolorspan bcs = new backgroundcolorspan(p);

效果:4.bulletspan

bulletspan, 著重樣式,類似於html中的

一行文字居中多行文字左對齊

lang en charset utf 8 titletitle head 當文字為一行是,則p的寬度小於div的寬度,p標籤居中顯示在盒子內,文字也就居中了 當大於一行時,p的寬度和div的寬度是一致的 文字就居左對齊了 rk box display inline block使p的寬度根據文字的寬...

CSS設定文字一行或者兩行顯示,多餘部分顯示省略號

一行顯示否則省略號 word break break all 屬性規定自動換行的處理方法。normal 使用瀏覽器預設的換行規則。break all 允許在單詞內換行。keep all 只能在半形空格或連字元處換行。text overflow ellipsis display webkit box ...

css實現一行文字居中,多行文字左對齊

問題及場景 當內容能一行顯示在盒子內時,文字居中對齊。當內容過多換行後顯示在盒子內時,文字左對齊。其實這種視覺上的需求還是蠻常見的。比如用於彈出提示框,當提示內容比較少時,內容居中顯示在彈出框,提示內容比較多時,內容居左對齊。但是其純css實現有點麻煩,一般就放掉這個需求,或者,使用js實現。解決方...