美文网首页
TextView字体大小根据控件大小自动缩放

TextView字体大小根据控件大小自动缩放

作者: Berlin麒麟 | 来源:发表于2020-08-07 14:36 被阅读0次

    在项目开发中会经常遇见TextView字体大小自适应的需求,比如个人中心中公司名称:


    1596781274(1).png 1596781305(1).png

    实现这样的功能是需要自己实现的。

       /**
         * 根据给定的宽度,自动缩小TextView的字体
         *
         * @param txt
         * @param maxWidth
         * @param value
         */
        public static void autoTextSize(TextView txt, float maxWidth, String value) {
            if (txt == null) {
                return;
            }
            if (maxWidth <= 0) {
                return;
            }
            if (TextUtils.isEmpty(value)) {
                return;
            }
            float tvWidth = txt.getPaint().measureText(value);
            LogUtils.d("tvWidth1 = " + tvWidth);
            // 如果超出边界,调整字体
            int count = 0;
            while (tvWidth > maxWidth) {
                //防止无限循环导致anr等问题
                if (count > 100) {
                    break;
                }
                count++;
                txt.setTextSize(TypedValue.COMPLEX_UNIT_PX, txt.getTextSize() - 1);
                tvWidth = txt.getPaint().measureText(value);
                LogUtils.d("tvWidth2 = " + tvWidth);
            }
            txt.setText(value);
        }
    

    相关文章

      网友评论

          本文标题:TextView字体大小根据控件大小自动缩放

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