A SeekBar is an extension of ProgressBar that adds a draggable thumb. The user can touch the thumb and drag left or right to set the current progress level or use the arrow keys. Placing focusable widgets to the left or right of a SeekBar is discouraged.
SeekBar support only int values for progress:
void setMax(int max) Set the upper range of the progress bar max.
void setMin(int min) Set the lower range of the progress bar to min.
void setProgress(int progress) Sets the current progress to the specified value.
int getMax() Return the upper limit of this progress bar's range.
int getMin() Return the lower limit of this progress bar's range.
int getProgress() Get the progress bar's current level of progress.
In some scenario we would need floating point seekbar progress, which is not supported by default in android.
Here the floating seekbar which supports floating point value:
You can download the full sample and library from https://github.com/yuvaraj119/Customized-FloatSeekBar
SeekBar support only int values for progress:
void setMax(int max) Set the upper range of the progress bar max.
void setMin(int min) Set the lower range of the progress bar to min.
void setProgress(int progress) Sets the current progress to the specified value.
int getMax() Return the upper limit of this progress bar's range.
int getMin() Return the lower limit of this progress bar's range.
int getProgress() Get the progress bar's current level of progress.
In some scenario we would need floating point seekbar progress, which is not supported by default in android.
Here the floating seekbar which supports floating point value:
You can download the full sample and library from https://github.com/yuvaraj119/Customized-FloatSeekBar
In layout:
<com.yuvaraj.floatseekbar.FloatSeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
In Activity:
FloatSeekBar seekBar= (FloatSeekBar) findViewById(R.id.seekBar);
ImageButton add = (ImageButton) findViewById(R.id.add);
add.setOnClickListener(this);
ImageButton minus = (ImageButton) findViewById(R.id.minus);
minus.setOnClickListener(this);
TextView textView=(TextView) findViewById(R.id.textView);
seekBar.setMaxFloat(10000.0f);
seekBar.setMinFloat(0.50f);
seekBar.setValue(5.0f);
seekBar.setSeekValueFloat(5.0f);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBars,
int progress, boolean fromUser) {
if (clicked == 1) {//add
clicked = 0;
} else if (clicked == 2) {//minus
clicked = 0;
} else {
seekBar.setSeekValueFloat(seekBar.getValue());
clicked = 0;
}
textView.setText("" + seekBar.getSeekValueFloat());
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.add:
clicked = 1;
if (seekBar.getSeekValueFloat() < seekBar.getMaxFloat()) {
seekBar.setPlus(seekBar1.getSeekValueFloat());
textView.setText("" + seekBar.getSeekValueFloat());
}
break;
case R.id.minus:
clicked = 2;
if (seekBar.getSeekValueFloat() > seekBar.getMinFloat()) {
seekBar.setMinus(seekBar.getSeekValueFloat());
textView.setText("" + seekBar.getSeekValueFloat());
}
break;
}
}
Comments
Post a Comment