当前位置:   article > 正文

textview固定宽度,自动调整字体大小_如何将textview一直保持三个字符宽度

如何将textview一直保持三个字符宽度

涉及spannableString知识
https://blog.csdn.net/chentaishan/article/details/122071754
在这里插入图片描述
固定的宽度,当为9时字体大,为10时字体变小。

fun setTextAutoSize(textView: TextView, text: String) {
        //设置textView固定宽度
        val layoutParams = textView.layoutParams
        layoutParams.width = TypedValue.applyDimension(
            TypedValue.COMPLEX_UNIT_DIP,
            30f,
            textView.context.resources.displayMetrics
        ).toInt() //必须明确 TextView的宽度(注意:实际宽度跟所在布局有关系)
        textView.layoutParams = layoutParams

        //获取控件的可绘制的宽度,加上由于精度的偏差,取控件的比例宽度
        val drawWidth = (layoutParams.width - textView.paddingLeft - textView.paddingRight) * 0.98f
        //获取文本内容需要的宽度
        val defTextWidth: Float = textView.paint.measureText(text)

        val proportion = drawWidth / defTextWidth //计算 字体大小比例
        val spannableString = SpannableString(text)
        spannableString.setSpan(   RelativeSizeSpan(proportion),   0, text.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE   )
        textView.text = spannableString
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/543922
推荐阅读
相关标签
  

闽ICP备14008679号