Android Seekbar с двумя большими пальцами - PullRequest
55 голосов
/ 27 апреля 2011

Вариации этого вопроса можно найти по всему Интернету, но нет ответа.

Я хочу панель поиска с выбором диапазона двумя пальцами. Я готов программировать это сам, но мне не хватает опыта работы с Android. Может ли кто-нибудь дать мне несколько советов о том, с чего начать. Я имею в виду, я знаю, что мне придется что-то расширять (вероятно, ProgressBar), но как мне это сделать? Действительно ли мне нужно воссоздать все функции стандартной панели поиска или есть более простой способ?

Полные решения также приветствуются;)

Ответы [ 5 ]

109 голосов
/ 21 июля 2011

Я тоже искал это, но безрезультатно. Поэтому я создал новый виджет, не стесняйтесь использовать его: https://github.com/anothem/android-range-seek-bar

Screenshot of RangeSeekBar

27 голосов
/ 05 августа 2013

"Я тоже искал это, но безрезультатно. Поэтому я создал новый виджет, не стесняйтесь его использовать: https://code.google.com/p/range-seek-bar/"

Этот пример, связанный со Стефаном, прекрасно работает! Однако пользователь долженнажмите любой из больших пальцев, чтобы получить ответ. Я хотел, чтобы, если пользователь нажал на панель, ближайший большой палец переместился бы в эту позицию и работал как обычно.

Я реализовал это в примере кода, подобном этому:

private final Thumb getClosestThumb(float touchX)

{
    double xValue = screenToNormalized(touchX);        
    return (Math.abs(xValue - normalizedMinValue) < Math.abs(xValue - normalizedMaxValue)) ? Thumb.MIN : Thumb.MAX;
}

А в "public boolean onTouchEvent(MotionEvent event)"

if(pressedThumb == null),
   pressedThumb = getClosestThumb(mDownMotionX);
3 голосов
/ 27 июля 2011

Панель поиска в окне с иконками влево и вправо.
Предустановленный минимальный размер окна и автоматический анти-кроссовер.

Screenshot of windowed-seek-bar

Ртутный репозиторий на https://bitbucket.org/nimbusgb/windowed-seek-bar

2 голосов
/ 13 октября 2016

Я использовал библиотеку anothem / android-range-seek-bar

https://github.com/anothem/android-range-seek-bar

В xml

<org.florescu.android.rangeseekbar.RangeSeekBar
            android:id="@+id/pricebar_with_label"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            rsb:absoluteMinValue="20"
            rsb:absoluteMaxValue="150"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            />

enter image description here

0 голосов
/ 17 июля 2019

Этот - один из лучших, которые я могу предложить.

...