Android SeekBar с разделителями

Я делаю пользовательский SeekBar, как показано на следующем изображении.

Пользовательская панель поиска с разделителем

после поиска в Интернете я не смог найти лучшее решение для этой проблемы. Следующий код является обычным элементом управления SeekBar, и, пожалуйста, помогите мне изменить его, как показано на изображении выше.

<SeekBar
 android:id="@+id/seekBar"
 android:layout_width="fill_parent"
 android:layout_height="@dimen/sbumit_form_field_height"
 android:layout_marginTop="@dimen/sbumit_form_field_top_mergin"
 android:layout_marginLeft="@dimen/sbumit_form_field_side_mergin"
 android:layout_marginRight="@dimen/sbumit_form_field_side_mergin"
 android:max="6"/>

person Thiha Zaw    schedule 21.11.2015    source источник
comment
создайте собственный класс Drawable, который рисует ваш дизайн и устанавливает его с помощью метода setProgressDrawable   -  person pskink    schedule 21.11.2015
comment
Спасибо @pskink. Позвольте мне попробовать.   -  person Thiha Zaw    schedule 21.11.2015


Ответы (2)


На вашем изображении показана именно эта библиотека (мой форк). Если вам не разрешено использовать его, вы можете хотя бы проверить решение и написать свой собственный код.

Проверьте ComboSeekbar метод onDraw. Проверить разветвленный ComboSeekbar метод onDraw.

Пример использования:

  1. Откройте свой проект build.gradle (корневая папка) и добавьте:

    allprojects {
        repositories {
            maven { url "http://dl.bintray.com/arnoult-antoine/maven/" }
            ...
        }
    }
    
  2. В главном модуле приложения (вероятно, каталог "app") файл build.gradle для библиотеки компиляции добавить:

    dependencies {
        ...
        compile 'com.aat:android-comboseekbar:1.0.2@aar'
    }
    
  3. Перейдите к файлу XML layout и введите:

    <com.infteh.comboseekbar.ComboSeekBar 
        xmlns:cbs="http://schemas.android.com/apk/res-auto"
        android:id="@+id/comboseekbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        cbs:myColor="@android:color/black"
        cbs:textSize="16sp" />
    
  4. В Activity onCreate запустите его, например, с помощью этого кода:

    ComboSeekBar comboSeekBar = (ComboSeekBar) findViewById(R.id.comboseekbar);
    List<String> points = new ArrayList<>();
    points.add("Point 1");
    points.add("Point 2");
    points.add("Point 3");
    points.add("Point 4");
    comboSeekBar.setAdapter(points);
    
  5. Наслаждайтесь комбинированной панелью поиска:

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

person sswierczek    schedule 21.11.2015
comment
Спасибо. Но он показывает только обычный SeekBar в примере проекта. На самом деле, я просто новичок в Android, и, пожалуйста, могу ли я узнать, как его использовать. - person Thiha Zaw; 21.11.2015
comment
@ThihaZaw смотрите мое редактирование, я добавил подробный пример того, как его использовать. - person sswierczek; 22.11.2015
comment
@SebastianŚwierczek Не имеет отношения, но как вы нашли проект AAR? - person jaytj95; 21.01.2016
comment
@jaytj95 используется в примере github.com/karabaralex/android -comboseekbar/blob/master/sample/, а URL-адрес maven находится в основном файле build.gradle здесь github.com/karabaralex/android-comboseekbar/blob/master/ - person sswierczek; 21.01.2016
comment
Я все еще немного смущен. Я разветвил этот проект, и теперь я хочу использовать свой разветвленный проект через gradle. Как мне это сделать? github.com/jaytj95/android-comboseekbar/tree/patch-1 - person jaytj95; 22.01.2016
comment
как уменьшить размер невыбранной точки? Пожалуйста, дайте какое-нибудь предложение - person Anand Savjani; 21.08.2016
comment
@AnandSavjani это невозможно в этой библиотеке, но ... Я разветвил ее, так как исходный репозиторий был удален и добавлен dotRadius и thumRadius. Вы должны загрузить мой новый выпуск 1.1.0 и использовать cbs:dotRadius и cbs:thumbRadius, чтобы изменить их. размер. Ознакомьтесь с примером использования здесь и мои изменения для достижения этого здесь - person sswierczek; 21.08.2016
comment
@sswierczek: как установить интервал между текстом и точкой? потому что это показывает много беспорядка. пожалуйста, помогите в этом - person Anand Savjani; 26.08.2016
comment
@AnandSavjani Я добавил атрибут cbs:textBottomPadding в версию 1.2.0. Пожалуйста, также проголосуйте за мой ответ, если вы найдете его полезным. - person sswierczek; 27.08.2016

Все, что вы ищете, здесь

См. здесь.

Он может настроить разделитель и текст, а также есть слушатели.

person hongbeomi    schedule 03.06.2020