Android 带分隔符的 SeekBar

Android SeekBar with separators

我正在制作一个自定义的 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"/>

您的图像显示完全 this library (my fork)。如果不允许您使用它,您至少可以检查解决方案并编写自己的代码。

检查 ComboSeekbar onDraw 方法。 检查分叉的 ComboSeekbar onDraw method.

用法示例:

  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 布局 文件并输入:

    <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. 享受您的 Combo Seekbar:

你要找的都在这里

参见here

可以自定义分隔符和文本,还有监听器。