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

标签 android kotlin

所以我有一个textview,其大小是根据android的autoSizeTextType =“uniform”设置的。我想将该大小复制到其他两个文本 View 中。

这是我尝试过的:

    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()返回size in pixels,但是setTextSize()将参数解释为缩放的像素(sp)。有setTextSize() overload接受文本大小和单位。在您的情况下,单位应为TypedValue.COMPLEX_UNIT_PX

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

关于android - Android将一个TextView的文本大小设置为等于另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61666242/

相关文章:

Android 6.0 向后兼容

spring - Spring MVC错误404错误请求Kotlin

kotlin - != null VS ?.let { } kotlin 中不可变变量的性能

Kotlin - toSet() 与 distinct()

android - 如何解决在直接将图像从 android 库共享到我的 flutter 应用程序时收到的奇怪和不完整的 Uri 和路径

android - 当我从一个 fragment 回到另一个 fragment 时,我的观察者总是开火

android - 服务在 galaxy nexus 上崩溃,但在模拟器上没有

android - 如何在android中获取国家名称?

android - Parceler - 无法找到生成的 Parcelable 类

java - 在 Kotlin 中装饰方法集的惯用方法是什么