Android 文本TextView底部對齊實現


前言

想要實現主體文字突出顯示,前面是數值加粗,后面是單位符號,且底部對齊數值顯示的效果;但是不同TextView字體大小排版后總是有些差別,無法底部對齊。百度一番后有重寫TextView的,還有其它布局對齊等方法,效果並不好使。突然想起之前寫的SpannableStringBuilder,其中AbsoluteSizeSpan可實現同一個TextView文字大小變化,而且底部是對齊的,於是就拿來使用。效果如下:

底部對齊.jpg

方法

主要是使用底部絕對尺寸AbsoluteSizeSpan來使TextView顯示內容分割后不同大小顯示,且使用ForegroundColorSpanStyleSpan來達到不同顏色及加粗顯示,突出主題內容。

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,我也會繼續補充其它有用的知識及例子在項目上。

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

關注公眾號:幾圈年輪,查看更多有趣的技術、工具、閑言、資源。
公眾號.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM