改变SeekBar的颜色

6
我想要改变SeekBar的颜色,准确地说,我想要改变被拖动以更改进度值的点的颜色。我知道可以通过更改 "colorAccent" 的值来实现,但这不是我想做的。
2个回答

13

您所提到的点被称为SeekBar拇指。要更改SeekBar拇指的颜色,请在style.xml中创建一个新样式。

通过XML进行更改

<SeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:thumbTint="your_color"  //gives your color
android:thumb="@drawable/yourseekthumb"  //gives your drawable
android:theme="@style/SeekBarColor" />

您可以使用 thumbTint android:thumb 来指定颜色或绘制对象。

此方法适用于API> 16。

要通过Java代码更改SeekBar拇指颜色

SeekBar seekbar = (SeekBar) findViewById(R.id.seekBar);
seekbar.getThumb().setColorFilter(your_color, PorterDuff.Mode.MULTIPLY);

这个方法只适用于安卓5及以上版本。


当我在Android Studio中添加thumbTint时,颜色会改变,但在模拟器中不会改变,而当我添加新的thumb drawable时,thumb会消失(我添加了xml椭圆形)。 - Piotr Konopacki
如果在使用thumbTint时模拟器中的颜色没有改变,请尝试使用真实设备。同时,尝试使用Java代码并查看其是否有效。如果问题仍然存在,请将相关代码作为编辑添加到您的问题中。 - Abhi
问题解决了吗? - Abhi
使用真实设备有所帮助 :) 谢谢 - Piotr Konopacki
很高兴能帮忙!干杯! - Abhi

5

尝试这个:只需在您的 SeekBar 中使用 android:thumbTint="@color/colorPrimary"

像这样:

<SeekBar
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:max="100"
     android:thumbTint="@color/red"
     android:progress="0" />

您可以像这样更改您的SeekBar的拇指:
Drawable seekbarThumb = getResources().getDrawable( R.drawable.seekbarThumb );
SeekBar mySeekBar = (SeekBar) findViewById(R.id.mySeekBar );
mySeekBar .setThumb(seekbarThumb );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接