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


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

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

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

4 52

4 ответа:

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

Screenshot of RangeSeekBar

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

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

я реализовал это в примере кода следующим образом:

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);

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

Screenshot of windowed-seek-bar

Mercurial repository at https://bitbucket.org/nimbusgb/windowed-seek-bar

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