如何让分段的SeekBar/滑动条看起来像下面这样?

9
我想知道是否有人可以提供提示或资源,以实现“Circle - Who's Around?” 中使用的以下滑块小部件。这是我第一次遇到这种小部件,我不确定应该如何准确地称呼它。

enter image description here

我想使用自定义seekbar背景来实现这个目标,但是,我不确定如何找出seekbar将到达下一步的确切像素。因为这将独立于设备。在我的情况下,我计划使用图像,而不是指示器。
请不要指向此链接http://www.mokasocial.com/2011/02/create-a-custom-styled-ui-slider-seekbar-in-android/,因为这不是我想要实现的。他们似乎使用静态图像页脚显示D、W、K。我尝试过那个应用程序,它甚至不能精确到达点或D、W、K。我看了AT&T Android滑块控件,但是他们似乎没有提供任何源代码。我发现一些iOS开发人员实现了这一点,但我真的不理解obj C代码,无法在Android中实现这一点。
3个回答

1

以下是使用https://github.com/karabaralex/android-comboseekbar库的@Milanix答案,这是一个对我有效的最小示例代码:

<com.infteh.comboseekbar.ComboSeekBar
        android:id="@+id/seekbar" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        custom:color="#000"
        custom:textSize="12sp"
        custom:multiline="false"
        />

然后在活动中。
private ComboSeekBar mSeekBar;
List<String> seekBarStep = Arrays.asList("All","1","5","10","20");
mDistanceSeekBar.setAdapter(seekBarStep);

这将创建一个使用默认绘制的黑色分段进度条。如果您需要添加一些自定义,请查看ComboSeekBar.onDraw()CustomDrawable.draw()CustomThumbDrawable.draw()
该项目虽然还未完成,但是作为一个坚实的起点。

当我将库添加到我的项目并尝试使用时,XML文件中的这一行<com.infteh.comboseekbar.ComboSeekBar会出现"error: Error parsing XML: unbound prefix"错误。是否有更多示例代码可以提供帮助? - RonEskinder

1
这只是一个带有自定义拇指和背景的“seekbar”。您可以使用9patch作为背景,以便它填充得很好,并将它们设置在您的样式中。

我从未使用过9patch,但是我该如何在seekbar的背景中添加(假设)A、B、C、D,以便它们恰好位于A、B、C、D上。我知道可以使用自定义拇指,但我想要实现在seekbar步骤中精确定位点的效果。 - Milan
啊,我明白了,但我不确定该怎么做。如果你找不到更好的答案,我建议你在下面再制作一个布局,其中包含线条等,并使用权重进行间距设置。我猜测,这些点将根据其宽度均匀地放置在进度条上,因此你应该能够对齐这两个元素。这绝不是一种优雅的解决方案,但根据你的需求,它可能会起作用。 - seaplain

0

@Giulio,感谢您的帖子,我和Ron Eskinder遇到了同样的问题。我通过在XML文件中删除:“custom:color”,“custom:textsize”和“custom:multiline”来解决它。然后在Java中,我加入了这个:

mSeekBar =  (ComboSeekBar) findViewById(R.id.seekbar);
List<String> seekBarStep = Arrays.asList("All","1","5","10","20");
mSeekBar.setAdapter(seekBarStep);

希望这能有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接