Android меняет цвет горизонтального индикатора выполнения - PullRequest
156 голосов
/ 21 апреля 2011

Я установил горизонтальный индикатор выполнения.

Я хотел бы изменить цвет прогресса на желтый.

<ProgressBar 
    android:id="@+id/progressbar" 
    android:layout_width="80dip" 
    android:layout_height="20dip"  
    android:focusable="false" 
    style="?android:attr/progressBarStyleHorizontal" />

Проблема в том, что цвет выполнения у разных устройств разный. Итак, я хочу, чтобы он исправил цвет прогресса.

Ответы [ 13 ]

1 голос
/ 09 июня 2016

final LayerDrawable Layers = (LayerDrawable) progressBar.getProgressDrawable ();layers.getDrawable (2) .setColorFilter (цвет, PorterDuff.Mode.SRC_IN);

0 голосов
/ 12 апреля 2019

Создайте нарисованный ресурс, какой фон вам нужен, в моем случае я назвал его bg_custom_progressbar.xml

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

<item>
    <shape android:shape="rectangle" >
        <corners android:radius="5dp"/>

        <gradient
            android:angle="180"
            android:endColor="#DADFD6"
            android:startColor="#AEB9A3" />
    </shape>
</item>
<item>
    <clip>
        <shape android:shape="rectangle" >
            <corners android:radius="5dp" />

            <gradient
                android:angle="180"
                android:endColor="#44CF4A"
                android:startColor="#2BB930" />
        </shape>
    </clip>
</item>
<item>
    <clip>
        <shape android:shape="rectangle" >
            <corners android:radius="5dp" />

            <gradient
                android:angle="180"
                android:endColor="#44CF4A"
                android:startColor="#2BB930" />
        </shape>
    </clip>
</item>

Затем используйте этот пользовательский фон, как

 <ProgressBar
                android:id="@+id/progressBarBarMenuHome"
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="match_parent"
                android:layout_height="20dp"
                android:layout_marginStart="10dp"
                android:layout_marginEnd="10dp"
                android:layout_marginBottom="6dp"
                android:indeterminate="false"
                android:max="100"
                android:minWidth="200dp"
                android:minHeight="50dp"
                android:progress="10"
                android:progressDrawable="@drawable/bg_custom_progressbar" />

У меня отлично работает

0 голосов
/ 13 ноября 2018

Если вы находитесь на уровне API 21 или выше, вы можете использовать эти атрибуты XML:

<!-- For indeterminate progress bar -->
android:indeterminateTint="@color/white"
<!-- For normal progress bar -->
android:progressTint="@color/white"
...