Skip to content Skip to sidebar Skip to footer

How To Hide/show Thumb Drawable In A Seekbar

I have a SeekBar with a custom drawable for the Thumb, and I would like to be able to show/hide it based on another control I have. I have tried loading the drawable from resources

Solution 1:

The best way to do this is to set the drawable for the thumb from XML (as I was doing all along) and then when you want to hide/show the Thumb drawable, just manipulate it's alpha value:

// Hide the thumb drawable if the SeekBar is disabled
if (enabled) {
    seekBar.getThumb().mutate().setAlpha(255);
} else {
    seekBar.getThumb().mutate().setAlpha(0);
}

Edit:

If thumb appearing white after setting alpha to zero, try adding

<SeekBar....android:splitTrack="false" 
/>

Solution 2:

Hide your thumb in a SeekBar via xml

 android:thumbTint="@color/transparent"

for Example

<SeekBar
android:id="@+id/seekBar"android:layout_width="match_parent"android:layout_height="wrap_content"android:clickable="false"android:thumb="@color/gray"android:thumbTint="@android:color/transparent" />

Solution 3:

Solution 4:

You can hide the seekbar thumb by setting arbitrarily large thumb offset value, which will move the thumb out of view. For example,

mySeekBar.setThumbOffset(10000);    // moves the thumb out of view (to left)

To show the thumb again, set the offset to zero or other conventional value:

mySeekBar.setThumbOffset(0);        // moves the thumb back to view

This approach works in all API levels.

Post a Comment for "How To Hide/show Thumb Drawable In A Seekbar"