Una SeekBar es una extensión de ProgressBar que añade un botón (thumb) que se puede arrastrar. El usuario puede tocar el Thumb y mover de izquierda a derecha para definir el progreso de la barra.
Existen dos tipos de SeekBar:
Normal -> Es como un ProgressBar pero el usuario puede setear la posición del Thumb.
Discreta -> Incluye una serie de marcas que definen los puntos en los que se puede setear el Thumb.
USO EN XML
ATRIBUTOS
Una SeekBar utiliza los atributos heredados de ProgressBar para gestionar el progreso.
Para controlar el Thumb, se han añadido los siguientes atributos:
android:thumb
Define el drawable que se mostrará en el Thumb.
android:thumbTint
Define el color que se aplica al Thumb.
android:tickMark
Define el drawable que se mostrará en las marcas de progreso.
android:tickMarkTint
Define el color que se aplica a las marcas de progreso.
En este método es donde podemos gestionar el comportamiento de otros elementos en función del progreso de la barra. Esto gracias al argumento progress: Int.
También podemos diferenciar si la modificación la ha realizado el sistema o el usuario. Esto gracias al argunemnto fromUser: Boolean.
onStartTrackingTouch(seekBar: seekBar?)
Controla el momento en el que se comienza a mover el thumb.
onStopTrackingTouch(seekBar: seekBar?)
Controla el momento en el que se deja de mover el thumb.
Código
He implementado una pequeña App para que vean como se puede controlar cada pequeño detalle de una SeekBar.
Es recomendable que la implementen en su laboratorio de pruebas para entender el funcionamiento ya que con imágenes no se ve del todo bien.
Cuando se está produciendo el cambio, hay una serie de marcadores que se actualizan en vivo.
Cuando pulsamos el botón inferior, la App entiende que ha sido el sistema el que ha modificado el progreso.