1. 获取文本展示所需的高度 如果设置了行数限制一定设置setEllipsize;setMaxLines
fun Context.calculateHeight(text: String?, fontSize: Float, itemWidth: Int): Int {
val textView = TextView(this).apply {
textSize = fontSize
}
text?.let {
val builder =
StaticLayout.Builder.obtain(it, 0, it.length, textView.paint, itemWidth).apply {
setMaxLines(1)
setEllipsize(TextUtils.TruncateAt.END)
}
return builder.build().height
}
return 0
}
fun Context.calculateWidth(text: String?, fontSize: Float): Float {
val textView = TextView(this).apply {
textSize = fontSize
}
text?.let {
return textView.paint.measureText(it)
}
return 0f
}