Android seekbar с двумя ползунками

SeekBar (Слайдер)

SeekBar — это обычный слайдер, когда пользователь может передвигать ползунок пальцем на экране. Ползунок также можно двигать при помощи клавиш-стрелок.

Компонент SeekBar находится в разделе Widgets и наследуется от класса ProgressBar. В Android Studio 3.0 представлен в двух вариантах: SeekBar и SeekBar (Discrete).

Для отслеживания перемещения ползунка SeekBar необходимо реализовать интерфейс-слушатель SeekBar.OnSeekBarChangeListener с методами-заглушками:

  • onProgressChanged() — уведомляет об изменении положения ползунка;
  • onStartTrackingTouch() — уведомляет о том, что пользователь начал перемещать ползунок;
  • onStopTrackingTouch() — уведомляет о том, что пользователь закончил перемещать ползунок

Заготовка для Kotlin (на Java будет ниже в статье).

Создадим новый проект и добавим компоненты SeekBar и TextView:

Напишем код, чтобы в текстовом поле отображалось текущее значение ползунка после того, как пользователь отпустит его.

Ниже представлены вариант на Android 5.0 и старый вариант на Android 2.3 до появления Material Design, чтобы вы видели, как менялся интерфейс.

Меняем задний фон экрана

Усложним пример и будем менять цвет у фона экрана. Добавим на форму три компонента SeekBar:

Напишем код, меняющий значение цвета через значения ползунка:

Кот Рыжик попросил выставить цвет, наиболее подходящий цвету его шкурки. Я решил ему немного польстить:

Дополнительное чтение

patryk1007/ShootingSlider — прикольный слайдер, напоминающий стрельбу из пушки в играх

Источник

Кастомный UI Slider (SeekBar)

Android слайдер (или SeekBar как его называют в мире Android) является довольно скользким UI елемент, который мы недавно использовали в нашем Call Your Folks! приложении в качестве средства выбора частоты напоминание от одного дня до трех месяцев.

Я расскажу вам о создании кастомизированного seekbar для вашего Android приложения, используя только несколько XML и drawables.

Читайте также:  Очистка мусора андроид без рекламы

Шаг 1: Создайте свое изображения Drawables (9-Patch)

Перед созданием любого XML drawables убедитесь, что вы создаете изображения drawables (включая один 9-patch drawable) необходимого для фона seekbar. 9-patch drawables будет использоватся в XML drawables ниже.
Создайте следующие drawables и поместить их в папку /res/drawable/

Шаг 2: SeekBar Progress Drawable

Создадите XML-файл для Android SeekBar который будет отображать прогресс, назовите его seekbar_progress_bg.xml и разместите его в папке /res/drawable/

XML выше сначала рисует полупрозрачный, голубой градиент, потом слой с полупрозрачными полосками поверх градиента. Строчка кода android:tileMode=»repeat» относится к полосе (полупрозрачной) картинки внутри вашей папки drawable созданой в Шаге 1.

Для получения дополнительной информации о создании кастомних форм(shape) с помощью XML используйте ресурси Android drawable resources docs, в частности bitmap и shape секции.

Шаг 3: SeekBar фон Drawable

Далее создайте основной drawable для отображения прогресса, это будет назначить drawable для progress и secondaryProgress действий внутри вашего seekbar. Назовите ваш drawable seekbar_progress.xml и разместите его в папке /res/drawable/

Код в теге nine-patch посилается на фоновое изображение создание в Шаге 1, последний блок посилается на drawable создани в Шаге 2.

Шаг 4: Соберем все в вместе

На данный момент, все, что вам нужно сделать, это визвать seekbar_progress drawable когда создаете seekbar

Две последние строчки устанавливают drawables для прогресса и ползунока для SeekBar . @drawable/seekbar_progress drawable созданий в предыдущем шаге.

Источник

SeekBar

SeekBar — это расширение ProgressBar, которое представляет собой слайдер. С его помощью пользователь может перемещать ползунок, устанавливая нужное значение прогресса. Например, с помощью слайдера можно регулировать уровень яркости или громкости.

Чтобы добавить SeekBar на активность, достаточно определить его XML.

Если вам нужно задать изначальный прогресс, то это можно сделать с помощью XML или программно.

    Через XML
    В коде разметки нужно добавить атрибут android:progress и передать в него уровень достигнутого прогресса.

По умолчанию максимальный прогресс равен 100, однако его можно изменить с помощью атрибута android:max.

Программно
В коде активности нужно определить экземпляр SeekBar и затем указать прогресс с помощью метода setProgress(), в аргументы которого передаётся значение прогресса.

Читайте также:  Карты для osmand для андроид

Кроме того, можно не задавать конкретный прогресс, а увеличивать текущий на определенную величину. Для этого можно воспользоваться методом incrementProgressBy().

Аналогично способу в XML, можно программно задать максимальное значение прогресса следующим образом.

Если вы хотите узнать текущий прогресс и его максимальное значение, вы можете воспользоваться методами getProgress() и getMax() соответственно.

К SeekBar можно добавить слушатель, который будет получать изменение прогресса. Сделать это можно с помощью метода setOnSeekBarChangeListener().

При этом будут реализованы 3 следующих метода:

  • onProgressChanged() — уведомляет о том, что в SeekBar произошли изменения (например, изменён прогресс).
  • onStartTrackingTouch() — уведомляет о том, что пользователь прикоснулся к ползунку.
  • onStopTrackingTouch() — уведомляет о том, что пользователь перестал касаться ползунка.

Настроим слушатель, чтобы он изменял уровень прозрачности фона у кнопки в зависимости от прогресса. Для этого в XML добавим Button.

Затем определим экземпляр Button в коде активности и после этого в методе onProgressChanged добавим изменение прозрачности. Также добавим всплывающие сообщение, сообщающие о срабатывании методов onStartTrackingTouch() и onStopTrackingTouch().

В результате получим следующее:

У SeekBar существует возможность кастомизации, заключающаяся в изменении полосы прогресса и ползунка на какой-либо свой.

Чтобы изменить полосу прогресса, нужно создать XML Drawable. Для этого в папке res/drawable создадим файл seek_bg.xml.

Затем в коде разметки воспользуемся атрибутом android:progressDrawable и передадим в него созданный файл.

Таким образом, можно легко изменить полосу прогресса у слайдера.

Аналогично можно заменить ползунок. Для этого нужно воспользоваться атрибутом android:thumb, в значении которого указать изображение, которое вы хотите использовать в качестве ползунка.

Источник

Как сделать двойной seekbar в android?

Я создаю приложение для android, где пользователь выбирает максимальное значение по seekbar.

мне нужна другая кнопка на той же панели поиска, чтобы пользователь мог выбрать максимальное и минимальное значение из конкретной уникальной панели поиска.

вот мой код одной строки поиска —

вот мой xml-код панели поиска —

5 ответов

библиотека классов виджет для Android имеет только один регулятор, справа только один рычаг. Сделал некоторые исследования в интернете и нашел этот прохладный пользовательский виджет, range-seek-bar.

вы можете следовать любой из ниже

полно подгоняйте двухсторонний и одиночный бар поиска пути вы можете обеспечить цвет ЕТК большого пальца руки http://codingsignals.com/crystal-range-seekbar-in-android/

Читайте также:  Как скопировать свою ссылку инстаграмма с андроида

добавить в gradle

вам не нужно использовать два seekbar, но вы можете просто сделать ту же функцию минимума и максимума, используя только один seekbar с двумя большими пальцами над ним Здесь его библиотека вы можете использоватьhttps://code.google.com/p/range-seek-bar/

вы можете использовать, используя ниже код

и в «public boolean onTouchEvent (MotionEvent event)»,

RangeSeekBar https://github.com/RanaRanvijaySingh/RangeSeekBar. Также доступны другие библиотеки, которые предлагают множество настроек. Если вы хотите пойти на более интерактивный дизайн, то ищите Материал Бар http://android-arsenal.com/details/1/1272.

Источник

Google Android — это несложно

Добро пожаловать на форум сайта

Seekbar с двумя ползунками

Seekbar с двумя ползунками

Сообщение myandroid » 22 авг 2014, 09:36

Если возможность в самом андроиде создать seekbar с двумя ползунками без дополнительных классов и т.п.?
Вот что мне нужно
Не могу найти в инете как это делается, все примеры только с одним ползунком.

Re: Seekbar с двумя ползунками

Сообщение KamiSempai » 22 авг 2014, 10:57

Re: Seekbar с двумя ползунками

Сообщение myandroid » 22 авг 2014, 14:07

Re: Seekbar с двумя ползунками

Сообщение KamiSempai » 22 авг 2014, 15:52

Собственно, я по ней и нашел эту библиотеку.

Подумайте логически, если бы была возможность сделать такое стандартными средствами, зачем тогда люди напрягались и писали отдельную библиотеку?

Re: Seekbar с двумя ползунками

Сообщение myandroid » 22 авг 2014, 17:37

Я вам отвечу, почему люди напрягались, потому что те кто разрабатывает андроид не думает о простых вещах. Раньше и загрузки файлов с инета не было, люди напрягались и делали свои классы, а потом андроидные ребята встроили его в систему. Поэтому и спрашиваю, может быть они уже сделали это.

Такой же бардак с select_dialog_multichoice сделали множественный список, а выбрать можно только одно, что за разработчики такие. Целый день потратил на поиск, решения нет, чтобы брать курсор из базы вместе с _id, все примеры только с Array где нет id. С точки зрения программирования брать значения вместо id, очень плохо.

Re: Seekbar с двумя ползунками

Сообщение KamiSempai » 22 авг 2014, 17:51

Источник

Оцените статью