たとえば、0〜10のシークバーがあります。シークバーをデフォルトの位置として5に設定する場合、どのようにすればよいですか。したがって、この例では、シークバーは中央から開始する必要があります。
これを使って
Android:progress="5"
「進行」と同様に、ProgressBarから属性の一部を継承します。すべての属性は http://developer.Android.com/reference/Android/widget/SeekBar.html にあります。
5の値でシークバーを取得するには
Xmlレイアウトでは、10
として最大値を使用します
Android:max="10"
Javaでシークバーが進行中になる5
seekbar = (SeekBar) findViewById(R.id.seekBar1);
seekbar.setProgress(5);
それでおしまい :)
このコードがきっとあなたのお役に立てば幸いです。
これを試して...
float discrete=0;
float start=0;
float end=100;
float start_pos=0;
int start_position=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
start=-10; //you need to give starting value of SeekBar
end=10; //you need to give end value of SeekBar
start_pos=5; //you need to give starting position value of SeekBar
start_position=(int) (((start_pos-start)/(end-start))*100);
discrete=start_pos;
SeekBar seek=(SeekBar) findViewById(R.id.seekBar1);
seek.setProgress(start_position);
seek.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), "discrete = "+String.valueOf(discrete), Toast.LENGTH_SHORT).show();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
// TODO Auto-generated method stub
// To convert it as discrete value
float temp=progress;
float dis=end-start;
discrete=(start+((temp/100)*dis));
}
});
}