1

我用这个方法来改变 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 上,我的方法不起作用,拇指的颜色不会改变。

我应该怎么做才能改变旧版安卓版本的拇指颜色?

4

2 回答 2

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" />
于 2017-07-26T03:24:02.827 回答
0

试试这个,

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

或者

sb.getProgressDrawable().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
sb.getThumb().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
于 2017-07-26T03:24:37.180 回答