Как раскрасить большой палец SeekBar на Android?

Я использую этот метод, чтобы изменить цвет большого пальца SeekBar:

  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);
  }

и этот код хорошо работает на Android 5.0 (Lollipop) и новее. Но на Android 4.2.2 или 4.3.1 мой способ не работает, цвет большого пальца не меняется.

Что мне делать, чтобы изменить цвет большого пальца на старых версиях Android?


person P. Ilyin    schedule 26.07.2017    source источник


Ответы (2)


Создайте новый стиль в style.XML

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

Наконец в макете

  <SeekBar
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:theme="@style/SeekBarColor" />
person Abhi    schedule 26.07.2017
comment
Да, я помню, но stackoverflow запрещает принимать в первые 7 минут) - person P. Ilyin; 26.07.2017
comment
Я понимаю. Рад помочь! - person Abhi; 26.07.2017

Попробуй это,

sb.getProgressDrawable().setColorFilter(getResources().getCo‌​lor(R.color.my_color‌​), PorterDuff.Mode.SRC_ATOP);

or

sb.getProgressDrawable().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
sb.getThumb().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
person Prokash Sarkar    schedule 26.07.2017