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

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

Ответ 1

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

Ответ 2

Используйте фильтры изображений, чтобы изменить цвет графиков списка состояний по умолчанию (включая 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).

Ответ 3

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