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

posted @ 2020-03-31 14:29  几圈年轮  阅读(3482)  评论(0编辑  收藏  举报