如何改变搜索栏中拇指的颜色?

时间:2013-05-09 20:25:34

标签: android xml seekbar

我的Android应用中有默认的seekbar。我注意到,当thumb上的seekbar被保持时,它会变黄。相反,我希望它在持有时变成蓝色。如何才能做到这一点?如果这是一个基本问题我很抱歉,我是android开发的新手。感谢。

3 个答案:

答案 0 :(得分:28)

使用图像过滤器更改默认State List Drawables(包括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)之后可用。

答案 1 :(得分:18)

无需额外造型。 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" />

答案 2 :(得分:15)

如果您不喜欢默认拇指,则必须创建自己的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