Android 将一个 TextView 的文本大小设置为等于另一个



所以我有一个文本视图,它的大小是基于android的autoSizeTextType="uniform"设置的。我想将该大小复制到另外两个文本视图中。

以下是我尝试过的:

val firstButton = activity?.findViewById<TextView>(R.id.b1)
val secondButton = activity?.findViewById<TextView>(R.id.b2)
val thirdButton = activity?.findViewById<TextView>(R.id.b3)
if (firstButton != null) {
secondButton?.textSize = firstButton.textSize
thirdButton?.textSize = firstButton.textSize
}

然而,这导致2和3的文本大小大约是第一个的4倍。有人知道我做错了什么吗?我猜它正在获得某种dpi缩放的大小,但我不确定如何获得正确的大小。

TextView.getTextSize()返回以像素为单位的大小,但setTextSize()将参数解释为缩放像素(sp(。有一个setTextSize((重载,它接受文本大小和单位。在您的情况下,单位应为TypedValue.COMPLEX_UNIT_PX

secondButton?.setTextSize(TypedValue.COMPLEX_UNIT_PX, firstButton.textSize)

最新更新