我想在搜索栏拇指上添加一个圆形进度条。它应该与拇指一起移动。如何通过自定义搜索栏来实现这一点?
注意:我设法通过相对定位来实现相同的功能,如下面的代码片段所示。在我的实现中,进度条微调器独立于搜索条。微调器根据拇指距屏幕左边缘的距离定位 onProgressChanged。这似乎工作正常。但是,我觉得这不是正确的方法,因为它容易出错。我正在寻找一种自定义 SeekBar 的方法
在SeekBar.OnSeekBarChangeListener
,
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
mSpinner.setX(getSpinnerPosition(progress));
}
}
private float getSpinnerPosition(int progress) {
float position = mSeekBarAbsPosition // Dist of seekbar from left edge of screen
+ getSeekThumbAbsPosition(progress) // Dist of thumb from left edge of seekbar
- mAdResolutionSpinner.getWidth() / 2; // To center align the spinner
return position;
}
private float getSeekThumbAbsPosition(int progress) {
// Get the percentage of the seek thumb progress.
float progressPercent = (float) progress / mSeekBarMax * 100;
// Absolute position of thumb from the left edge of seek bar
return (mSeekBarWidth * progressPercent / 100);
}