Элемент SeekBar в Android

Элемент SeekBar в Android-разработке выполняет роль ползунка, то есть речь идет о шкале делений, на которой можно менять текущую отметку. Давайте рассмотрим основные атрибуты этого элемента:

  • android:max: максимальное значение;
  • android:min: минимальное значение;
  • android:progress: текущее значение, находящееся в диапазоне между min и max.

Чтобы управлять этим элементом, существуют несколько специальных методов. Некоторые из них стоит выделить:

  • void setProgress(int progress): для установки текущего значения ползунка;
  • void setMin(int min): для установки минимального значения;
  • void setMax(int max): для установки максимума;
  • void incrementProgressBy(int diff): для увеличения текущего значения на diff;
  • int getMax(): для возвращения максимального значения;
  • int getMin(): для возвращения минимума;
  • int getProgress(): для возвращения текущего значения;
  • void setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener l): для установки в элемент SeekBar слушателя изменения значения.

Давайте определим элемент SeekBar в разметке layout:

Атрибут android:progress задаст в качестве текущего значения ползунка число 20, а атрибут android:max -- наибольшее значение, которое возможно -- 50. В результате получится следующее:

Также мы можем задействовать метод setOnSeekBarChangeListener() -- он позволит установить обработчик событий изменения значения ползунка:

Выше мы определили элемент TextView, который станет выводить текущее значение ползунка в случае его изменения.

Теперь поменяем код MainActivity:

Таким образом, в метод setOnSeekBarChangeListener() осуществляется передача объекта SeekBar.OnSeekBarChangeListener, который дает возможность устанавливать 3 метода-обработчика:

  • onProgressChanged: срабатывает в случае перетаскивания ползунка по шкале. При этом параметр progress, передаваемый в метод, дает возможность получать новое значение ползунка -- оно в данном случае передается в TextView для отображения на экране;
  • onStartTrackingTouch: срабатывает, когда начинается перетаскивание ползунка по шкале;
  • onStopTrackingTouch: срабатывает в случае завершения перетаскивания ползунка по шкале.

Кроме всего вышесказанного, у нас есть возможность получить текущее значение ползунка, задействовав метод getProgress():

По материалам https://metanit.com/java/android/.