Android - панель пошуку стилів


229

Я хотів стилізувати смугу пошуку, яка виглядає як на зображенні нижче.

введіть тут опис зображення

Використовуючи панель пошуку за замовчуванням, я отримаю щось подібне:

введіть тут опис зображення

Тому мені потрібно лише змінити колір. Мені не потрібні зайві стилі. Чи є якийсь прямий підхід для цього чи я повинен будувати свій власний малюнок?

Я спробував створити спеціальний, але не зміг отримати точний, як показано вище. Після використання користувальницького малювання, що я отримую, як показано нижче:

введіть тут опис зображення

Якщо мені потрібно створити спеціальний, тоді підкажіть, як зменшити ширину лінії прогресу, а також форму.

моя спеціальна реалізація:

background_fill.xml:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:angle="90"
        android:centerColor="#FF555555"
        android:endColor="#FF555555"
        android:startColor="#FF555555" />

    <corners android:radius="1dp" />

    <stroke
        android:width="1dp"
        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:angle="90"
        android:centerColor="#FFB80000"
        android:endColor="#FFFF4400"
        android:startColor="#FF470000" />

    <corners android:radius="1dp" />

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

</shape>

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>

thumb.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >

    <gradient
        android:angle="270"
        android:endColor="#E5492A"
        android:startColor="#E5492A" />

    <size
        android:height="20dp"
        android:width="20dp" />

</shape>

панель пошуку:

<SeekBar
        android:id="@+id/seekBarDistance"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="88dp"
        android:progressDrawable="@drawable/progress"
        android:thumb="@drawable/thumb" >
    </SeekBar>

40
Дякуємо, що показали приклад зміни стилю робочої смуги пошуку XD. (не багато в Інтернеті).
Хелін Ван

Відповіді:


297

Я б витяг малюнки та xml з вихідного коду Android і змінив його колір на червоний. Ось приклад того, як я доповнив це для малюнків mdpi:

Спеціальні red_scrubber_control.xml(додати до res / dravable):

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

    <item android:drawable="@drawable/red_scrubber_control_disabled_holo" android:state_enabled="false"/>
    <item android:drawable="@drawable/red_scrubber_control_pressed_holo" android:state_pressed="true"/>
    <item android:drawable="@drawable/red_scrubber_control_focused_holo" android:state_selected="true"/>
    <item android:drawable="@drawable/red_scrubber_control_normal_holo"/>
</selector>

Спеціальні: red_scrubber_progress.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/red_scrubber_track_holo_light"/>
    <item android:id="@android:id/secondaryProgress">
        <scale
            android:drawable="@drawable/red_scrubber_secondary_holo"
            android:scaleWidth="100%" />
    </item>
    <item android:id="@android:id/progress">
        <scale
            android:drawable="@drawable/red_scrubber_primary_holo"
            android:scaleWidth="100%" />
    </item>

</layer-list>

Потім скопіюйте потрібні чернетки з вихідного коду Android, я взяв із цього посилання

Добре копіювати ці малюнки для кожного hdpi, mdpi, xhdpi. Наприклад, я використовую лише mdpi:

Потім за допомогою Photoshop змініть колір із синього на червоний:

red_scrubber_control_disabled_holo.png: red_scrubber_control_disabled_holo

red_scrubber_control_focused_holo.png: red_scrubber_control_focused_holo

red_scrubber_control_normal_holo.png: red_scrubber_control_normal_holo

red_scrubber_control_press_holo.png: red_scrubber_control_press_holo

red_scrubber_primary_holo.9.png: red_scrubber_primary_holo.9

red_scrubber_secondary_holo.9.png: red_scrubber_secondary_holo.9

red_scrubber_track_holo_light.9.png: red_scrubber_track_holo_light.9

Додайте SeekBar до макета:

<SeekBar
    android:id="@+id/seekBar1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:progressDrawable="@drawable/red_scrubber_progress"
    android:thumb="@drawable/red_scrubber_control" />

Результат:

введіть тут опис зображення


Андрій, дякую за чудову відповідь. У мене виникає проблема з цим. Під час використання red_scrubber_controlкреслення для великого пальця я зіткнувся з аварією. Якщо всі малюнки в селекторі однакові, він працює добре, але якщо я зміню одну з них, я отримую Resources$NotFoundException: File .../red_scrubber_control.xml from drawaable resource ID...будь-які думки?
Карл

2
Уопс. Виявляється, це було пов’язано зі stackoverflow.com/questions/6669296/… . Нове зображення, яке я намагався додати, було випадково 37 Мб замість 2 КБ ...
karl

Чи можна все-таки використовувати @dimenдля встановлення розміру великого пальця на основі екрана?
Si8

1
@ SiKni8 Ви можете визначити різні розміри для різних розмірів екрана на основі нормальних, великих, xlarge, sw або w параметрів для папки значень. Потім просто використовуйте цей параметр у своєму макеті, стилі чи темі. Перевірте це посилання
andrew

1
Дякуємо за посилання на генератор кольорів Android Android. Це дуже корисно.
Дерева

66

Моя відповідь натхненна Andras Balázs Lajtha, відповідь дозволяє працювати без XML-файлу

seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);

Колір діалогу прогресу змінився, але великий палець не став .. чому?
Йонатан Нір

7
Якщо вам не потрібно робити це в коді і не хочете створювати списки шарів і малюнки тощо, ви також можете це зробити в xml панелі пошуку android:progressTint="@color/my_color" android:thumbTint="@color/another_color"
Daveloper87

59

Якщо ви хочете точно таку ж смужку, але червоного кольору, ви можете додати програмний колірний фільтр PorterDuff програмно. Ви можете отримати кожен малюнок, який ви хочете розфарбувати за допомогою методів базового класу ProgressBar . Потім встановіть для нього кольоровий фільтр .

mySeekBar.getProgressDrawable().setColorFilter(new PorterDuffColorFilter(srcColor, PorterDuff.Mode.MULTIPLY));

Якщо потрібне регулювання кольору неможливо здійснити через фільтр Porter Duff, ви можете вказати власний фільтр кольорів .


3
не впевнений, з якого SDK, proly 21, але якщо ви хочете, щоб той самий значок просто іншого кольору, просто додайте "colorAccent" колір у кольорах.xml і він буде використовувати його
tibbi

57

Спеціальний стиль матеріалу пошукової панелі Android, для інших налаштувань панелі пошуку http://www.zoftino.com/android-seekbar-and-custom-seekbar-examples

<style name="MySeekBar" parent="Widget.AppCompat.SeekBar">
    <item name="android:progressBackgroundTint">#f4511e</item>
    <item name="android:progressTint">#388e3c</item>
    <item name="android:colorControlActivated">#c51162</item>
</style>

шуканий користувальницький стиль матеріалу


2
Відмінне рішення для Android> 21
saltandpepper

4
Ви впевнені, що colorControlActivatedце правильний параметр для великого пальця? Це повинно бути thumbTint.
Пітер Кнут

Що таке рішення нижче API 21?
Файсал Шейх

42

Просто замініть кольорові атрибути своїм кольором

background.xml

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

    <stroke android:width="1dp" android:color="#D9D9D9"/>
    <corners android:radius="1dp" />

</shape>

progress.xml

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

    <stroke android:width="1dp" android:color="#2EA5DE"/>
    <corners android:radius="1dp" />

</shape>

style.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/seekbar_background"/>
    <item android:id="@android:id/progress">
        <clip android:drawable="@drawable/seekbar_progress" />
    </item>

</layer-list>

thumb.xml

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

    <size android:height="30dp" android:width="30dp"/>
    <stroke android:width="18dp" android:color="#882EA5DE"/>
    <solid android:color="#2EA5DE" />
    <corners android:radius="1dp" />

</shape>

1
Як використовувати файли на панелі пошуку?
mungaih pk

@RahulRastogi як ти використовував ці файли? Як нерозумно, що ця відповідь настільки популярна з 0 поясненнями, як це працює ...
Selali Adobor

1
@AssortedTrailmix Я це робив давно назад. Спробуйте встановити такі атрибути, як: android: thumb = "@ dravable / thumb" та в android: progressDravable властивість встановити вищезазначений список шарів, що виводиться. Ви можете спробувати: mindfiremobile.wordpress.com/2014/05/20/…
Рахул Растогі

37

Google спростив це у SDK 21. Тепер у нас є атрибути для визначення кольорів відтінку великого пальця:

android:thumbTint
android:thumbTintMode
android:progressTint

http://developer.android.com/reference/android/widget/AbsSeekBar.html#attr_android:thumbTint http://developer.android.com/reference/android/widget/AbsSeekBar.html#attr_android:thumbTintMode


7
progressTint теж.
afollestad

1
Списки відтінків застосовуються до кожного елемента інтерфейсу користувача на Android від API 21, саме так застосовується colorAccent.
afollestad

16

Усі ці відповіді застарілі.

У 2019 це легше укладати SeekBar на ваш улюблений колір, змінивши ProgressBarдля цього

<SeekBar
            android:id="@+id/seekBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:progressTint="#36970f"
            android:thumbTint="#36970f"
            />

Стилизуючи свій колір панелі пошукових програм, спробуйте наступний код

        seekBar.getProgressDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
        seekBar.getThumb().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);

Чому застарілий?
CoolMind

бо бібліотеки змінилися
Giannis Mpountouridis

Ви можете побачити відповідь @Ahamadullah Saikat ( stackoverflow.com/a/50074961/2914140 ) або lvguowei.me/post/customize-android-seekbar-color . Вони не використовують бібліотеки та встановлюють кольори SeekBar навіть для старих API.
CoolMind

11

Як уже згадувалося вище (@andrew), створити користувацький SeekBar дуже просто з цим сайтом - http://android-holo-colors.com/

Просто увімкніть SeekBar там, виберіть колір та отримайте всі ресурси та скопіюйте проект. Потім застосуйте їх у xml, наприклад:

  android:thumb="@drawable/apptheme_scrubber_control_selector_holo_light"
  android:progressDrawable="@drawable/apptheme_scrubber_progress_horizontal_holo_light"

10

вихід:

введіть тут опис зображення

у файлі макета:

        <android.support.v7.widget.AppCompatSeekBar
            android:id="@+id/seekBar_bn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:max="25"
            android:minHeight="10dp"
            android:progress="10"
            android:progressDrawable="@drawable/progress"
            android:thumb="@drawable/custom_thumb" />

dravable / 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>

dravable / background_fill.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="6dp"
        android:left="-6dp"
        android:right="-6dp"
        android:top="6dp">

        <shape android:shape="rectangle">
            <solid android:color="#888888" />
            <stroke
                android:width="5dp"
                android:color="@android:color/transparent" />
        </shape>
    </item>
</layer-list>

dravable / progress_fill.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="6dp"
        android:left="-6dp"
        android:right="-6dp"
        android:top="6dp">

        <shape android:shape="rectangle">
            <solid android:color="@color/myPrimaryColor" />
            <stroke
                android:width="5dp"
                android:color="@android:color/transparent" />
        </shape>
    </item>
</layer-list>

dravable / custom_thumb.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="oval">
            <solid android:color="@color/myPrimaryColor"/>
            <size
                android:width="22dp"
                android:height="22dp"/>
        </shape>
    </item>
</layer-list>

кольори.xml

<color name="myPrimaryColor">#660033</color>

не знав, що існує AppCompat Seekbar
П'єр,


9
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:progressTint="@color/red"
android:thumbTint="@color/red" />

працює Як і відповідь обрана. не потрібно створювати будь-який файл, що малюється, або інше


5

За замовчуванням андроїд відповідатиме кольором ходу вашого повзунка

`<item name="colorAccent">`

значення у ваших styles.xml . Потім, щоб встановити зображення власного слайдера, просто скористайтеся цим кодом у блоці макета SeekBar xml:

android:thumb="@drawable/slider"

5
LayerDrawable progressDrawable = (LayerDrawable) mSeekBar.getProgressDrawable();

// progress bar line *progress* color
Drawable processDrawable = progressDrawable.findDrawableByLayerId(android.R.id.progress);

// progress bar line *background* color
Drawable backgroundDrawable = progressDrawable.findDrawableByLayerId(android.R.id.background);

// progress bar line *secondaryProgress* color
Drawable secondaryProgressDrawable = progressDrawable.findDrawableByLayerId(android.R.id.secondaryProgress);
processDrawable.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);

// progress bar line all color
mSeekBar.getProgressDrawable().setColorFilter(Color.BLUE, PorterDuff.Mode.SRC_IN);

// progress circle color
mSeekBar.getThumb().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN);

4

Для API <21 (і> = 21) ви можете використовувати відповідь @Ahamadullah Saikat або https://www.lvguowei.me/post/customize-android-seekbar-color/ .

введіть тут опис зображення

<SeekBar
    android:id="@+id/seekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxHeight="3dp"
    android:minHeight="3dp"
    android:progress="50"
    android:progressDrawable="@drawable/seek_bar_ruler"
    android:thumb="@drawable/seek_bar_slider"
    />

dravable / traži_bar_ruler.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">
        <shape android:shape="rectangle">
            <solid
                android:color="#94A3B3" />
            <corners android:radius="2dp" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape android:shape="rectangle">
                <solid
                    android:color="#18244D" />
                <corners android:radius="2dp" />
            </shape>
        </clip>
    </item>
</layer-list>

dravable / traži_bar_slider.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval"
    >

    <solid android:color="#FFFFFF" />
    <stroke
        android:width="4dp"
        android:color="#18244D"
        />
    <size
        android:width="25dp"
        android:height="25dp"
        />
</shape>

3

Якщо ви використовуєте SeekBar за замовчуванням, який надає android Sdk, то це простий спосіб змінити колір цього кольору. просто перейдіть до color.xml всередині /res/values/colors.xml та змініть colorAccent.

<resources>
    <color name="colorPrimary">#212121</color>
    <color name="colorPrimaryDark">#1e1d1d</color>
     <!-- change below line -->
    <color name="colorAccent">#FF4081</color>
</resources>

2

Я змінюю background_fill.xml

<?xml version="1.0" encoding="UTF-8"?>
  <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line" >
<size android:height="1dp" />
<gradient
    android:angle="0"
    android:centerColor="#616161"
    android:endColor="#616161"
    android:startColor="#616161" />
<corners android:radius="0dp" />
<stroke
    android:width="1dp"
    android:color="#616161" />
<stroke
    android:width="1dp"
    android:color="#616161" />
</shape>

і progress_fill.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line" >
<size android:height="1dp" />
<gradient
    android:angle="0"
    android:centerColor="#fafafa"
    android:endColor="#fafafa"
    android:startColor="#fafafa" />
<corners android:radius="1dp" />
<stroke
    android:width="1dp"
    android:color="#cccccc" />
<stroke
    android:width="1dp"
    android:color="#cccccc" />
 </shape>

щоб досягти 1dpвисоти фону та прогресу .


2

Простий спосіб змінити колір смужки пошуку ...

 <ProgressBar
            android:id="@+id/progress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:theme="@style/Progress_color"/>

Стиль: Progress_color

 <style name="Progress_color">
    <item name="colorAccent">@color/white</item> <!-- Whatever color you want-->
</style>

зміна класу java ProgressDravable ()

seek_bar.getProgressDrawable().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.MULTIPLY);

1

Якщо ви подивитеся на ресурси Android, на панелі пошуку фактично використовуються зображення.

Ви повинні зробити креслення, яке прозоре зверху і знизу, скажімо, 10 пікселів, а середня лінія 5 пікселів видно.

Дивіться додане зображення. Вам потрібно перетворити його в NinePatch.

введіть тут опис зображення


Ви можете, будь ласка, запропонувати деякі пости на тому ж?
suresh cheemalamudi

Одне з хороших посилань, які я знайшов - mokasocial.com/2011/02/…
Sagar Waghmare

Рішення неділі G Akinsete працює, немає необхідності використовувати NinePatch
Хелін Ван

0

Для тих, хто використовує прив'язку даних:

  1. Додайте наступний статичний метод до будь-якого класу

    @BindingAdapter("app:thumbTintCompat")
    public static void setThumbTint(SeekBar seekBar, @ColorInt int color) {
        seekBar.getThumb().setColorFilter(color, PorterDuff.Mode.SRC_IN);
    }
  2. Додайте app:thumbTintCompatатрибут до вашого SeekBar

    <SeekBar
           android:id="@+id/seek_bar"
           style="@style/Widget.AppCompat.SeekBar"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           app:thumbTintCompat="@{@android:color/white}"
    />

Це воно. Тепер ви можете використовувати app:thumbTintCompatз будь-яким SeekBar. Відтінок ходу можна налаштувати так само.

Примітка. Цей метод також сумісний з пристроями, що попередньо льодяники.


0

Невелике виправлення відповіді від @ arnav-rao:

щоб переконатися, що великий палець кольором належним чином, використовуйте:

<style name="MySeekBar" parent="Widget.AppCompat.SeekBar">
    <item name="android:progressBackgroundTint">@color/colorBgTint</item>
    <item name="android:progressTint">@color/colorProgressTint</item>
    <item name="android:thumbTint">@color/colorThumbTint</item>
</style>

тут android: thumbTint насправді забарвлює "великий палець"


0

перевірити цей підручник дуже добре

https://www.lvguowei.me/post/customize-android-seekbar-color/

просто:

<SeekBar
                android:id="@+id/seekBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:max="100"
                android:maxHeight="3dp"
                android:minHeight="3dp"
                android:progressDrawable="@drawable/seekbar_style"
                android:thumbTint="@color/positive_color"/>

тоді файл стилю:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@android:id/background">
        <shape android:shape="rectangle" >
            <solid
                android:color="@color/positive_color" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape android:shape="rectangle" >
                <solid
                    android:color="@color/positive_color" />
            </shape>
        </clip>
    </item>
</layer-list>

0

Я хотів створити стиль для панелі пошуку, а потім додати стиль до теми, щоб я міг застосувати його до цілої теми, але все ж дозволяючи підкладові переосмислити її. Ось що я зробив:

<!-- Blue App Theme -->
    <style name="AppTheme.Blue" parent="BaseTheme.Blue">        
        <item name="android:seekBarStyle">@style/SeekbarStyle.Blue</item>
        <item name="seekBarStyle">@style/SeekbarStyle.Blue</item> <!--This is essential for some devices, e.g. Samsung-->
</style>

<!-- Slider Styles -->
<style name="SeekbarStyle.Blue" parent="Widget.AppCompat.SeekBar">
        <item name="android:progressBackgroundTint">@color/material_blue_a700_pct_30</item>
        <item name="android:thumbTint">@color/material_blue_a700</item>
        <item name="android:thumbTintMode">src_in</item>
        <item name="android:progressTint">@color/material_blue_a700</item>
</style>

<style name="SeekbarStyle.Green" parent="Widget.AppCompat.SeekBar">
        <item name="android:progressBackgroundTint">@color/material_green_a700_pct_30</item>
        <item name="android:thumbTint">@color/material_green_a700</item>
        <item name="android:thumbTintMode">src_in</item>
        <item name="android:progressTint">@color/material_green_a700</item>
</style>

Вищезазначене встановлює стиль тематичної панелі пошуку синім для всіх пристроїв 21+, включаючи Samsung (для яких потрібен пошукBarStyle, доданий до Android: traBarStyle; не впевнений, чому я вперше побачив цю проблему). Якщо ви хочете, щоб усі панелі пошуку підтримували стиль теми та застосовували лише зелений стиль пошукової панелі до кількох віджетів, тоді додайте до потрібного віджета наступне:

<SeekBar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.Green"/>

0

З бібліотекою матеріальних компонентів версії 1.2.0 ви можете використовувати новий Sliderкомпонент.

 <com.google.android.material.slider.Slider
       android:valueFrom="0"
       android:valueTo="300"
       android:value="200"
       android:theme="@style/slider_red"
       />

Ви можете змінити колір за замовчуванням, використовуючи щось на зразок:

  <style name="slider_red">
    <item name="colorPrimary">#......</item>
  </style>

введіть тут опис зображення

В іншому випадку ви можете використовувати цей атрибут у макеті, щоб визначити колір або селектор кольорів:

   <com.google.android.material.slider.Slider
       app:activeTrackColor="@color/...."
       app:inactiveTrackColor="@color/...."
       app:thumbColor="@color/...."
       />

або ви можете використовувати власний стиль:

 <style name="customSlider" parent="Widget.MaterialComponents.Slider">
    <item name="activeTrackColor">@color/....</item>
    <item name="inactiveTrackColor">@color/....</item>
    <item name="thumbColor">@color/....</item>
  </style>

Офіційні документи заявляють, що все ще планується. чи є інша альтернатива?
tejaspatel

@tejaspatel У відповіді є посилання офіційного компонента. Перша версія тепер випущена у версії 1.2.0-alpha01.
Габріеле

-1

Ви також можете зробити це так:

<SeekBar
    android:id="@+id/redSeekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:progressDrawable="@color/red"
    android:maxHeight="3dip"/>

Сподіваюся, це допоможе!


1
Я не думаю, що ти можеш використовувати колір там, де він шукає малюнок
Lancelot
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.