天天看点

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,我也会继续补充其它有用的知识及例子在项目上。

欢迎点赞/评论,你们的赞同和鼓励是我写作的最大动力!

关注公众号:几圈年轮,查看更多有趣的技术、工具、闲言、资源。