Поиск полосы, изменение цвета пути с желтого на белый.
У меня есть два вопроса:
1) как изменить цвет строки поиска (путь) от желтого (цвет по умолчанию) до белого. Я хочу сказать, что, пока я выдвигаю большой палец, он поворачивает линию, проходящую от серого до желтого. Я хочу, чтобы трек/линия оставался серым или белым. В принципе, я хочу, чтобы только большой палец перемещался без изменения цвета в строке поиска.
2)
Как изменить большой палец стрелки от прямоугольника до круга/сферы/круглой формы.
любые указатели будут оценены.
Ответы
Ответ 1
Я хочу выполнить ответ сверху для людей, которые новичок в системе,
отсутствующие 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>
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>
Я не выполнил реализацию для android: thumb, поэтому большой палец будет по-прежнему оригинальным.
Поэтому нам просто нужно удалить эту строку снова из нашего макета xml, где мы определяем поисковую панель
android:thumb="@drawable/thumb"
Удачи!!!
Ответ 2
Вы должны установить свойства 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>
Ответ 3
Так как 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>
Ответ 4
seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
Ответ 5
Вы можете просто добавить оттенок из уровня API 21.
Добавьте эти свойства в элемент поиска:
Android: progressTint = "@андроид: цвет/белый" Android: thumbTint = "@андроид: цвет/белый"
Конечный результат:
<SeekBar
android:id="@+id/is"
android:layout_width="match_parent"
android:max="100"
android:progressTint="@android:color/white"
android:thumbTint="@android:color/white"/>
Ответ 6
Просто измените цвет акцента вашего стиля
<style name="TickMarkSeekBar" parent="Theme.KefTheme">
<item name="tickMark">@drawable/tickmark</item>
<item name="thumbTint">@android:color/white</item>
<item name="colorAccent">@android:color/white</item>
</style>