Android Seekbar с двумя большими пальцами
варианты этого вопроса можно найти по всему интернету, но не ответ.
Я хочу панель поиска с выбором диапазона с двумя пальцами. Я готов запрограммировать это сам, но мне не хватает опыта работы с Android. Может кто-нибудь дать мне несколько советов о том, с чего начать. Я имею в виду, я знаю, что мне придется что-то продлить (возможно, ProgressBar), но как я должен это сделать? Мне действительно нужно воссоздать всю функциональность стандартной панели поиска, или есть более простой путь?
полные решения также приветствуются, конечно;)
4 ответа:
Я тоже искал, безрезультатно. Поэтому я сделал новый виджет, не стесняйтесь использовать его:https://github.com/anothem/android-range-seek-bar
"Я тоже искал, безрезультатно. Поэтому я сделал новый виджет, не стесняйтесь использовать его: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);
оконная панель поиска с левыми и правыми значками.
Предустановленный минимальный размер окна и автоматический анти-кроссовер.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" />