Я создаю пользовательский SeekBar с TextView над большим пальцем следующим образом:

Используемый мной код (-30это ширина текстового представления для его центрирования):
SeekBar.OnSeekBarChangeListener seekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
int val = (progress * (seekBar.getWidth() - 2 * seekBar.getThumbOffset())) / seekBar.getMax();
Tv_SbDistanceText.setText(progress + " Km");
Tv_SbDistanceText.setX(seekBar.getX() + val + seekBar.getThumbOffset() / 2 - 30);
Show_Map(dpWidth, dpHeight, Lat, Lon, progress*1000);
}
Дело в том, что при перемещении большого пальца текстовое изображение смещается все больше и больше:

(Это не из-за -30, я тестировал с и без него)
Есть ли способ, которым я могу быть уверен, что он всегда останется прямо над центромбольшой палец?
xml:
<SeekBar
android:id="@+id/sb_radius"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="10"
android:min="1"
android:max="300"
android:layout_marginTop="48dp"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp"
android:thumb="@drawable/sb_thumb"
android:progressDrawable="@drawable/sb_style"
app:layout_constraintTop_toBottomOf="@+id/sb_text"
android:splitTrack="false">
</SeekBar>
Спасибо