Я пытаюсь создать панель поиска большим пальцем, который меняет цвет, когда пользователь нажимает его, и обратно, когда пользователь отпускает его. Мне удалось изменить рисование большого пальца, используя set thumb. Тем не менее, я также должен был установить границы рисования в Java, чтобы он появился после изменения. Теперь, когда пользователь отпускает ползунок, и он возвращается к своей исходной прорисовке, он сбрасывает прорисовку в нулевую позицию и оставляет прогресс там, где он должен быть. Я пытался использовать глобальную переменную для сброса прогресса на панели поиска после изменения рисования, но, похоже, это не работает. Если я использую статическое целое число для сброса прогресса, он работает так, как я хочу.
Вроде плохо знаком с android, и я не знаю, что я делаю неправильно.
Это код, который изменяет рисование при касании.
private void Seek_Height_Click() {
Drawable myThumb = getResources().getDrawable(R.drawable.slider_button_click);
myThumb.setBounds(new Rect(0, 0, myThumb.getIntrinsicWidth(),myThumb.getIntrinsicHeight()));
Height_of_Target_skbr.setThumb(myThumb);
Height_of_Target_skbr.setThumbOffset(-1);
}
Это код для возврата большого пальца к исходному рисунку.
private void Seek_Height_UnClick() {
Drawable myThumb = getResources().getDrawable(R.drawable.slider_button);
myThumb.setBounds(new Rect(0, 0, myThumb.getIntrinsicWidth(),myThumb.getIntrinsicHeight()));
Height_of_Target_skbr.setThumb(myThumb);
Height_of_Target_skbr.setThumbOffset(-1);
Height_of_Target_skbr.setProgress(Height_Prog_int);
}
Это код, который вызывает вышеуказанный метод.
this.Height_of_Target_skbr.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
returnHeight_skbr();
Seek_Height_UnClick();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
returnHeight_skbr();
Seek_Height_Click();
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
returnHeight_skbr();
}
});