2014-02-26 30 views
4

我想自定义SeekBar,如下图所示。 Make a seekbar like this one如何制作一个seekbar,其初始进度为零,从中间开始

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

所以在onProgresschanged。

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

谢谢。

回答

10

Android中的Seekbars不能有负值。假设您为进度条的最大范围(例如,使用setMax(100)或使用android:max =“100”的xml文件)指定了值为'100'的值,那么您可以使用此方法来移动进度条,只要你想要的(例如,在您的Activity.onCreate()或任何其他地方)的中间

yourProgressBar.setProgress(50); 

那之后,你可以使用得到进度值:如果你想

int progress = yourProgressBar.getProgress(); 

具有介于(例如)-50至+50之间的进度值,那么您可以简单地使用:

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

祝你好运。

+0

谢谢,解释。那么如何通过增加和降低其价值来管理进度变量? – user2688158

+0

onProgressChanged()提到的上述代码就够了吗? – user2688158

+0

是的,您可以在onProgressChanged()中获得新的进度值的通知。 –

0

通过xml你可以这样做:android:progress="20"意味着20是默认位置。寻求酒吧的起点。

或者在你的代码,你可以不喜欢它:

your_seekBar.setProgress(start_position); 

即。 your_seekBar.setProgress(20)

你可以调整你想

3

AFAIK SeekBar与负值是不可能的Android。 对于这种拿你SeekBar条范围从0到100 您可以设置它像..

seekbar.setMax(100); 

开始从中心开始喜欢..

seekbar.setProgress(50); 

而且从50到decrese它0

0

这个地方在OnCreate中

seekBar=((SeekBar)(v.findViewById(R.id.seekBar1))); 
    seekBar.setMax(100); 
    seekBar.setProgress(50); 
0

我写了一个关于自定义seekbar的博客。你可以看看this。作为Kalyan说你需要设置MaxprogressseekBar

seekbar.setMax(100); 
seekbar.setProgress(50);//Set default progress of the Seekbar