He encontrado la siguiente solución para hacer que la barra de búsqueda se mueva sin problemas, y aun así ajustar a un rango limitado de valores. Asumiendo que tiene los siguientes puntos de vista en su diseño:
<SeekBar
android:id="@+id/sldProgress"
style="@style/MySliderStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50" />
<TextView
android:id="@+id/lblProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="5" />
Puede utilizar el siguiente código en su actividad (cambiar el valor del androide: max en el XML anterior, y el factor de suavidad en el código de abajo de acuerdo a su - las necesidades de los valores más altos = más suaves):
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sliderListener sldListener = new sliderListener();
SeekBar sldProgress = (SeekBar) findViewById(R.id.sldProgress);
sldProgress.setOnSeekBarChangeListener(sldListener);
}
private class sliderListener implements OnSeekBarChangeListener {
private int smoothnessFactor = 10;
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progress = Math.round(progress/smoothnessFactor);
TextView lblProgress = (TextView) findViewById(R.id.lblProgress);
lblProgress.setText(String.valueOf(progress));
}
public void onStartTrackingTouch(SeekBar seekBar) {
}
public void onStopTrackingTouch(SeekBar seekBar) {
seekBar.setProgress(Math.round((seekBar.getProgress() + (smoothnessFactor/2))/smoothnessFactor) * smoothnessFactor);
}
}
}
+1 Puede agregar el código fuente para que pueda ayudar a los visitantes en el futuro. –
Lo haré, lo publicaré tan pronto como presione la última versión de mi aplicación. Creo que la fuente abierta de la aplicación de todos modos –
Según lo prometido - https://github.com/kennydude/Speaker/blob/master/src/me/kennydude/speaker/SmoothSeekBar.java esa ubicación se actualizará como actualizaciones de código –