Как изменить цвет большого пальца в seekbar?

у меня есть значение по умолчанию seekbar в моем приложении для android. Я заметил, что когда thumb на seekbar удерживается, желтеет. Вместо этого я хочу, чтобы он стал синим, когда его держат. Как это сделать? Я прошу прощения, если это основной вопрос, я новичок в разработке android. Спасибо.

3 ответов


Если вам не нравится большой палец по умолчанию, вам придется создать свой собственный 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.


используйте фильтры изображений для изменения цвета списка состояний по умолчанию (включая панель поиска):

  // 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).


нет необходимости в дополнительной стилизации. 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" />