如何在Android上为SeekBar的拇指着色?

时间:2017-07-26 03:16:47

标签: android android-seekbar seekbar-thumb

我使用此方法更改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版本上改变拇指的颜色?

2 个答案:

答案 0 :(得分: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" />

答案 1 :(得分: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);