5

我想自定义 SeekBar,如下图所示。制作一个像这样的搜索栏

我是编程的初学者,我在寻找教程,但每个地方的进步都是从最左边的角落开始的。有人可以指导我如何自定义 SeekBar。

所以在onProgresschanged。

 @Override
 public void onProgressChanged(SeekBar seekBar,int progress, boolean fromUser) {            
brightness = progress;
    putGestureImageOnScreen(doBrightness(imageBitmap, brightness));
 }

谢谢。

4

5 回答 5

15

Android 中的搜索栏不能有负值。假设您为进度条的最大范围指定了一个值“100”(例如使用 setMax(100) 或在您的 xml 文件中使用 android:max="100"),那么您可以使用此方法移动您的随时将进度条移到中间(例如在 Activity.onCreate() 或其他任何地方)

    yourProgressBar.setProgress(50);

之后,您可以使用以下方法获取进度值:

    int progress = yourProgressBar.getProgress();

如果您想要(例如)-50 到 +50 之间的进度值,那么您可以简单地使用:

    int progress = yourProgressBar.getProgress();
    progress -= 50;

祝你好运。

于 2014-02-26T07:26:16.557 回答
3

SeekBar带有负值的AFAIK是不可能的Android。为此,将您的SeekBar条形范围从 0 到 100。您可以将其设置为..

seekbar.setMax(100);

最初从中心开始像..

seekbar.setProgress(50);

并将其从 50 减少到 0

于 2014-02-26T07:14:53.690 回答
0

通过 xml 你可以这样做:android:progress="20"意味着 20 是默认位置。搜索栏的起点。

或者在您的代码中,您可以这样做:

your_seekBar.setProgress(start_position);

IE。your_seekBar.setProgress(20)

你可以随意调整

于 2014-02-26T07:13:40.133 回答
0

把它放在 Oncreate

 seekBar=((SeekBar)(v.findViewById(R.id.seekBar1)));
    seekBar.setMax(100);
    seekBar.setProgress(50); 
于 2014-02-26T07:16:28.643 回答
0

我写了一篇关于自定义搜索栏的博客。你可以看看这个正如Kalyan 所说,你需要设置MaxprogressseekBar

seekbar.setMax(100);
seekbar.setProgress(50);//Set default progress of the Seekbar
于 2014-02-26T07:22:20.893 回答