22

seekbar我在我的 android 应用程序中有默认设置。我注意到,当按住thumbon时seekbar,它会变成黄色。相反,我希望它在持有时变成蓝色。如何才能做到这一点?如果这是一个基本问题,我深表歉意,我是 android 开发的新手。谢谢。

4

3 回答 3

33

使用图像过滤器更改默认状态列表可绘制对象的颜色(包括 SeekBar):

  // Change seekbar color to green.
  SeekBar sb = (SeekBar) findViewById(R.id.seekBar1);
  sb.getProgressDrawable().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);
  sb.getThumb().setColorFilter(0xFF00FF00, PorterDuff.Mode.MULTIPLY);

该方法getThumb仅在 API 16+(Jelly Bean)之后可用。

于 2013-10-09T06:58:20.300 回答
23

不需要额外的样式。Android 通过 xml 支持它。只需在搜索栏中添加android:thumbTint="@color/yourColor" 即可

例如。

<SeekBar
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:max="100"
     android:thumbTint="@color/red"
     android:progress="0" />
于 2015-10-14T05:50:10.757 回答
20

如果您不喜欢默认拇指,则必须创建自己的Drawable,然后您可以使用以下代码在代码中设置拇指:

Drawable thumb = getResources().getDrawable( R.drawable.myThumb );
SeekBar mSeekBar = (SeekBar) findViewById(R.id.mySeekBar);
mSeekbar.setThumb(thumb);

或者您可以使用以下方法在 XML 中设置拇指:

<SeekBar 
    ...
    android:thumb="@drawable/seek_thumb" />

实际的 Drawable 可以是图像、形状或您可能想要的任何其他类型的 Drawable。如果您希望拇指在按下时改变外观,您将需要创建一个State List Drawable.

于 2013-05-09T21:13:01.953 回答