Search code examples
androidandroid-seekbarseekbar-thumb

How to colorize SeekBar's thumb on Android?


I use this method to change SeekBar's thumb color:

  public static void setThumbColor(final SeekBar sb, @ColorInt final int color) {
    final Drawable thumb = sb.getThumb();
    thumb.setColorFilter(color, PorterDuff.Mode.SRC_IN);
    sb.setThumb(thumb);
  }

and this code works well on Android 5.0 (Lollipop) and newer. But on Android 4.2.2 or 4.3.1 my method doesn't work, color of thumb doesn't change.

What should I do to change color of thumb on older android versions?


Solution

  • Create a new style in style.XML

    <style name="SeekBarColor"
    parent="Widget.AppCompat.SeekBar"> 
    <item name="colorAccent">@color/your_color</item> 
    </style>
    

    Finally in the layout

      <SeekBar
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:theme="@style/SeekBarColor" />