获得18-99范围而不是0-100范围

时间:2019-06-14 12:27:31

标签: java android math kotlin

我正在实现自定义SeekBar(RangeBar)。我已经成功创建了它,并且可以通过拖动其父级中拇指的相对X坐标(以百分比表示)来拖动它,从而检测“拇指”值:

val minimumAge = (leftThumb.x / parent.width * 100)

所以给我一个0到100之间的值。

但是,我希望最小值为18,最大值为99(同时保持相同的x比率)

这可能吗?

3 个答案:

答案 0 :(得分:0)

您需要像这样更改计算

val minimumAge = (leftThumb.x / parent.width * (99-18)) + 18

答案 1 :(得分:0)

使用重新计算值

(99 - 18) * value / 100 + 18)

或者如果您想使用双精度然后四舍五入

Math.round((99 - 18) * value / 100.0) + 18

答案 2 :(得分:-1)

将0-100 bar的比例转换为0-81(99-18)的比例,然后加18以强制达到最小值范围。

val minimumAge = 18 + (leftThumb.x / parent.width * 81)