创建一个微调器,当选择一个项目时调整它的宽度

我有一个微调,我想它的宽度是用户选择的项目的宽度。 当试图获得在两个不同的设备上的文字宽度,我得到两个不同的结果。 要获得文本宽度,我正在做以下事情:

fun textDim(text: String): Int { val bounds = Rect() val textPaint = Paint() textPaint.textSize = 16f textPaint.getTextBounds(text, 0, text.length, bounds) return bounds.width() } 

但是,这不起作用,并且不能在两台设备上正确缩放。 所以,我试了一下

 fun textDim(text: String, context: Context): Int { val bounds = Rect() val textPaint = Paint() textPaint.textSize = 16f textPaint.getTextBounds(text, 0, text.length, bounds) return bounds.width() * context.resources.displayMetrics.density.toInt() } 

然而,这也得到了不同的结果与两个不同的设备。

设备1 设备2