Android 文本TextView底部对齐实现

作者: 几圈年轮 | 来源:发表于2020-03-31 14:16 被阅读0次

    前言

    想要实现主体文字突出显示,前面是数值加粗,后面是单位符号,且底部对齐数值显示的效果;但是不同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

    相关文章

      网友评论

        本文标题:Android 文本TextView底部对齐实现

        本文链接:https://www.haomeiwen.com/subject/bcuwuhtx.html