Подтвердить что ты не робот

Android Seekbar с двумя большими пальцами

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

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

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

4b9b3361

Ответ 2

"Я тоже искал это, безрезультатно. Поэтому я создал новый виджет, не стесняйтесь его использовать: 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

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

Screenshot of windowed-seek-bar

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

Ответ 4

Я использовал библиотеку 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"
            />

введите описание изображения здесь

Ответ 5

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