Двойной управляемый слайдер-андроид

Мне было интересно, есть ли у кого-нибудь код или знает место, где есть код для создания ползунка с двойной обработкой. Пример: enter image description here

Я ищу что-то подобное, используя двойной слайдер для поиска диапазона возрастов на временном массиве, например, на фотографии

Заранее спасибо

Ответ 1

Мне удалось создать его сам... идея, которую я придерживался, отличалась от приведенных выше ответов. Я создал некоторые элементы, которые можно перетащить на экран пальцем, и я зафиксировал положение Y, чтобы он мог двигаться только слева направо. После этого я создал прямоугольники, которые означают прогресс (между ручками и вне их). Хорошая вещь об этом методе заключается в том, что вы можете легко настроить ползунок как вертикальный, так и горизонтальный, или если вы хотите поместить пользовательское изображение в фоновом режиме. Источник находится по ссылке ниже, и если у кого есть какие-либо вопросы, пожалуйста, спросите. link: проект eclipse

small resolution landscape

small resolution portrait

high resolution landscape

Ответ 2

Вы видели range-seek-bar. Похоже, что все будет отлично.!

Screenshot of range-seek-bar

Ответ 3

Вы можете попробовать и расширить AbsSeekBar и взглянуть на одно-thumbed- SeekBar, как это работает.

Ответ 4

Я просмотрел весь пакет Widgets и невероятно, у ADT нет никакого ползунка! Это, очевидно, ставит вас в серьезный недостаток, поскольку для вас не существует ничего, что можно было бы расширить или изменить.

Однако существует руководство по взломам компонента пользовательского слайдера из компонента ProgressBar. Это может быть вашим решением. Автор переопределяет метод onTouchEvent, чтобы установить значение индикатора выполнения в соответствии с координатами касания. Очень умно. Однако, поскольку индикатор выполнения может показывать только одно значение, он может показывать только нижнюю или верхнюю границу с помощью одного индикатора выполнения.

Мое предложение состоит в создании составного компонента, который имеет один индикатор выполнения, который всегда находится на 0%, и еще один индикатор выполнения, который всегда равен 100%. Второй бар накладывается поверх первого, а его координаты и ширина устанавливаются так, что его левый край представляет нижнюю границу (x), а правый край показывает верхнюю границу (x + ширина). Ваш onTouchEvent будет определять, находятся ли координаты касания ближе к нижней или верхней границе, а затем начните корректировать эту привязку до отпускания. Когда границы меняются, вы просто перемещаете и изменяете размер второго бара. Если вы можете позиционировать компоненты абсолютно и поверх других компонентов, это должно выглядеть великолепно!