2014-02-26 55 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