TextView單行文字自適應--草稿代碼

    var maxWidth: Float = 0f

    private fun setTextDynamicSize (textView :TextView, text: String) {
        var textSizeInDp = 16f
        textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSizeInDp)
        var textWidth = textView.paint.measureText(text)

        if (maxWidth == 0f) {
            val halfWidth = STDeviceUtils.getScreenWidth(textView.context) / 2
            val location = IntArray(2)
            maxWidth = (halfWidth -  STDeviceUtils.dip2px(80f)).toFloat()
        }

        if(textWidth > maxWidth){
            var i: Int = 40
            while(i-- > 0 && textSizeInDp > 3) {
                textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSizeInDp)
                textWidth = textView.paint.measureText(text)
                if(textWidth <= maxWidth){
                    break
                }
                textSizeInDp -= 2
            }
        }

        textView.text = text
        textView.invalidate()
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章