前言
想要實作主體文字突出顯示,前面是數值加粗,後面是機關符号,且底部對齊數值顯示的效果;但是不同
TextView
字型大小排版後總是有些差别,無法底部對齊。百度一番後有重寫
TextView
的,還有其它布局對齊等方法,效果并不好使。突然想起之前寫的
SpannableStringBuilder
,其中
AbsoluteSizeSpan
可實作同一個
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,我也會繼續補充其它有用的知識及例子在項目上。
歡迎點贊/評論,你們的贊同和鼓勵是我寫作的最大動力!
關注公衆号:幾圈年輪,檢視更多有趣的技術、工具、閑言、資源。