如何在 Android 上为 SeekBar 的拇指着色?
How to colorize SeekBar's thumb on 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 版本的缩略图颜色?
在 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" />
试试这个,
sb.getProgressDrawable().setColorFilter(getResources().getColor(R.color.my_color), PorterDuff.Mode.SRC_ATOP);
或
sb.getProgressDrawable().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
sb.getThumb().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
我用这个方法来改变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 版本的缩略图颜色?
在 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" />
试试这个,
sb.getProgressDrawable().setColorFilter(getResources().getColor(R.color.my_color), PorterDuff.Mode.SRC_ATOP);
或
sb.getProgressDrawable().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
sb.getThumb().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);