如何增加SeekBar的值

5

我希望创建一个分为5个部分的SeekBar,它们分别是“极差”、“低于平均水平”、“平均水平”和“优秀”。每一步我都希望像这个SeekBar一样增加。 默认值=0 最大值=100;

i want seek bar values like this :0,25,50,75,100

我该如何实现这个目标?

谢谢。

3个回答

19

您只需按以下方式更新 onProgressChanged 方法。

int yourStep = 25;
public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
progress = ((int)Math.round(progress/yourStep ))*yourStep;
seekBar.setProgress(progress);
textview.setText(progress + "");

}

希望有所帮助

更新

我想你在你的xml中为你的SeekBar设置了 android:max="100"。但你需要设置 android:max="101",因为在 0100之间共有 101 个点。

只需替换

android:max="100"

android:max="101"

我更新了我的回答,请查看。我创建了一个测试应用程序,一切都很顺利。 - jimpanzer
非常好的工作,谢谢。我使用int yourStep = 20;来增加它,以获得5个部分的seek bar。 - user1737884
为什么要创建一个步长值?看看我的解决方案。 - Dan Bray

2

试试这个:

seekBar.setProgress(4);

这将给出数值:0, 1, 2, 3, 4。您不需要使用onProgressChanged,只需乘以25,即可获得数值0, 25, 50, 75, 100

这是错误的。如果您不更改最大值,它将给您形式为:0、4、8、12、16、……、92、96、100的值。您需要更改的是seekBar.setMax(4) - PlatinTato

0

请尝试以下代码。

seekBar.setProgress(YOUR_VALUE);

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