天天看點

Android 文本TextView底部對齊實作

前言

想要實作主體文字突出顯示,前面是數值加粗,後面是機關符号,且底部對齊數值顯示的效果;但是不同

TextView

字型大小排版後總是有些差别,無法底部對齊。百度一番後有重寫

TextView

的,還有其它布局對齊等方法,效果并不好使。突然想起之前寫的

SpannableStringBuilder

,其中

AbsoluteSizeSpan

可實作同一個

TextView

文字大小變化,而且底部是對齊的,于是就拿來使用。效果如下:

Android 文本TextView底部對齊實作

方法

主要是使用底部絕對尺寸

AbsoluteSizeSpan

來使

TextView

顯示内容分割後不同大小顯示,且使用

ForegroundColorSpan

StyleSpan

來達到不同顔色及加粗顯示,突出主題内容。

private void setBottomAlignment(TextItem item) {
    SpannableStringBuilder spanString = new SpannableStringBuilder(item.getValue() + "  " + item.getUnit());
    //絕對尺寸
    AbsoluteSizeSpan absoluteSizeSpan = new AbsoluteSizeSpan(60);
    spanString.setSpan(absoluteSizeSpan, String.valueOf(item.getValue()).length(), spanString.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
    // 字型顔色
    ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.GRAY);
    spanString.setSpan(colorSpan, String.valueOf(item.getValue()).length(), spanString.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
    // 字型加粗
    StyleSpan styleSpan = new StyleSpan(Typeface.BOLD);
    spanString.setSpan(styleSpan, 0, String.valueOf(item.getValue()).length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    mTvNumberUnit.setText(spanString);
}
           

還有更多關于

TextView

圖文顯示,分别設定點選事件等有趣使用,請檢視SpannableStringBuilder實作TextView華麗變身 。例子已上傳至Github開發記錄,歡迎點選查閱及Star,我也會繼續補充其它有用的知識及例子在項目上。

歡迎點贊/評論,你們的贊同和鼓勵是我寫作的最大動力!

關注公衆号:幾圈年輪,檢視更多有趣的技術、工具、閑言、資源。