Поиск полосы, изменение цвета пути с желтого на белый

У меня есть два вопроса:

1) как изменить цвет строки поиска (путь) от желтого (цвет по умолчанию) до белого. Я хочу сказать, что, пока я выдвигаю большой палец, он поворачивает линию, проходящую от серого до желтого. Я хочу, чтобы трек / линия оставался серым или белым. В принципе, я хочу, чтобы только большой палец перемещался без изменения цвета в строке поиска.

2) Как изменить большой палец стрелки от прямоугольника до круга / сферы / круглой формы.

Любые указатели будут оценены.

Solutions Collecting From Web of "Поиск полосы, изменение цвета пути с желтого на белый"

Я хочу завершить ответ сверху для людей, которые новичок в системе,

Отсутствующие xmls (background_fill, progress_fill и прогресс могут выглядеть так, как для градиента красного

progress.xml

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background" android:drawable="@drawable/background_fill" /> <item android:id="@android:id/progress"> <clip android:drawable="@drawable/progress_fill" /> </item> </layer-list> 

background_fill.xml

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#FF555555" android:centerColor="#FF555555" android:endColor="#FF555555" android:angle="90" /> <corners android:radius="5px" /> <stroke android:width="2dp" android:color="#50999999" /> <stroke android:width="1dp" android:color="#70555555" /> </shape> 1 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#FF555555" android:centerColor="#FF555555" android:endColor="#FF555555" android:angle="90" /> <corners android:radius="5px" /> <stroke android:width="2dp" android:color="#50999999" /> <stroke android:width="1dp" android:color="#70555555" /> </shape> 

progress_fill.xml

 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#FF470000" android:centerColor="#FFB80000" android:endColor="#FFFF4400" android:angle="180" /> <corners android:radius="5px" /> <stroke android:width="2dp" android:color="#50999999" /> <stroke android:width="1dp" android:color="#70555555" /> </shape> 1 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:startColor="#FF470000" android:centerColor="#FFB80000" android:endColor="#FFFF4400" android:angle="180" /> <corners android:radius="5px" /> <stroke android:width="2dp" android:color="#50999999" /> <stroke android:width="1dp" android:color="#70555555" /> </shape> 

Я не выполнил реализацию для android: thumb, поэтому большой палец будет по-прежнему оригинальным

Поэтому нам просто нужно снова удалить эту строку из нашего макета xml, где мы определяем поисковую панель

 android:thumb="@drawable/thumb" 

Удачи!!!

Вы должны установить свойства XML SeekBar:

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

Где прогресс выглядит примерно так:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background" android:drawable="@drawable/background_fill" /> <item android:id="@android:id/progress"> <clip android:drawable="@drawable/progress_fill" /> </item> </layer-list> 

И большой палец

 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/thumb_fill" /> </selector> 

Поскольку SeekBar использует colorAccent по умолчанию, вы можете создать новый стиль с вашим пользовательским цветом в качестве colorAccent а затем использовать атрибут theme чтобы применить его к SeekBar.

 <SeekBar> . . android:theme="@style/MySeekBarTheme" . </SeekBar> 

В стиле @style:

  <style name="MySeekBarTheme" parent="Widget.AppCompat.SeekBar" > <item name="colorAccent">#ffff00</item> </style> 
 seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN); seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN); 

Вы можете добавить оттенок из уровня API 21.

Добавьте эти свойства в элемент поиска:

Android: progressTint = "@ android: color / white" android: thumbTint = "@ android: color / white"

Конечный результат:

 <SeekBar android:id="@+id/is" android:layout_width="match_parent" android:max="100" android:progressTint="@android:color/white" android:thumbTint="@android:color/white"/>