1

我有完全由我自己的 xml 组成的自定义按钮。我可以为其设置样式、颜色和文本+图标,但现在我需要设置自定义文本大小。

我在我的可样式属性中添加了新属性<attr name="l_buttonTextSize" format="dimension"/>,然后我从维度设置了 textSize 的值app:l_buttonTextSize="@dimen/text_small"。但我无法在按钮初始化中读取它。

这就是我读取该值的方式:

val buttonTxtSize = typedArray.getFloat(btnTextSizeIndex, resources.getDimension(R.dimen.text_medium))
setButtonTextSize(buttonTxtSize)

fun setButtonTextSize(value: Float){
    buttonText.setTextSize(TypedValue.COMPLEX_UNIT_PX, value)
}

我有这个例外:

java.lang.NumberFormatException: For input string: "12.0sp"

看起来像发送字符串而不是维度值作为浮点数。

4

1 回答 1

0

您可以使用getDimensionPixelSize

val buttonTxtSize = typedArray.getDimensionPixelSize(btnTextSizeIndex, resources.getDimension(R.dimen.text_medium))
于 2021-02-04T13:59:48.433 回答