Панель поиска, изменение цвета пути с желтого на белый - PullRequest
52 голосов
/ 14 августа 2010

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

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

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

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

Ответы [ 7 ]

94 голосов
/ 10 ноября 2011

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

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

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: большой палец, поэтому большой палецбудет по-прежнему исходной

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

android:thumb="@drawable/thumb"

Удачи !!!

68 голосов
/ 14 августа 2010

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

<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>
24 голосов
/ 10 июля 2016

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

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

в стиле @:

 <style name="MySeekBarTheme" parent="Widget.AppCompat.SeekBar" >
        <item name="colorAccent">#ffff00</item>
 </style>
16 голосов
/ 02 августа 2016
seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
8 голосов
/ 08 января 2017

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

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

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"/>
0 голосов
/ 13 августа 2018

1.Создайте отрисовываемый XML: Назовите его: progress_drawable

<?xml version="1.0" encoding="UTF-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="line">

<stroke android:width="1dp" android:color="#fff"/>

</shape>

2.Присвойте его Seekbar

            <SeekBar
                    android:id="@+id/slider_1"
                    android:progressDrawable="@drawable/progress_drawable"
                    android:layout_width="180dp"
                    android:layout_height="32dp"
                    android:layout_gravity="center"
                    android:rotation="270" />
0 голосов
/ 10 апреля 2018

Просто измените цвет акцента вашего стиля

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...