Подтвердить что ты не робот

Как изменить цвет неопределенного ProgressBar?

У меня есть панель прогресса со следующим стилем: style="?android:attr/android:progressBarStyleSmall"

К сожалению, бар почти белый и в моем случае отображается на белом фоне. Из-за этого индикатор прогресса почти невидим.

Как изменить цвет панели выполнения? Темный серый цвет будет большим.

4b9b3361

Ответ 1

Причина, по которой панель имеет этот цвет, связана с выбранным вами стилем. Это фиксированный стиль и использует системные темы для создания элементов пользовательского интерфейса.

Посмотрите на исходный код здесь. Этот атрибут progressBarStyleSmall использует стили, определенные здесь.

<style name="Widget.ProgressBar.Small">
    <item name="android:indeterminateDrawable">@android:drawable/progress_small_white</item>
    <item name="android:minWidth">16dip</item>
    <item name="android:maxWidth">16dip</item>
    <item name="android:minHeight">16dip</item>
    <item name="android:maxHeight">16dip</item>
</style>

Просто создайте пользовательский стиль, следуя примеру исходного кода Android. Вам нужно будет заменить андроид: indeterminateDrawable на то, что вы хотите.

Ответ 2

progressBar.getIndeterminateDrawable().setColorFilter(
            getResources().getColor(R.color.light_light_purple),
            android.graphics.PorterDuff.Mode.SRC_IN);

Этот код изменяет цветной заголовок inominmin по умолчанию для вашего собственного цвета. Определите свой цветовой код и замените R.color.light_light_purple на R.color.your_color_code.

Ответ 3

Чтобы получить черный ProgressBar, используйте один из обратных стилей:

<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>
<ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/>
<ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>

Ответ 4

public static void setColorOfProgressBar(ProgressBar mProgressBar, int mColor){
    mProgressBar.getIndeterminateDrawable().setColorFilter(mColor, android.graphics.PorterDuff.Mode.MULTIPLY);
}

Ответ 5

Мне очень тяжело было пытаться изменить его цвет. Чтобы решить эту проблему, я получил код android src и сделал свой собственный класс ProgressBar.

Не лучший ответ, но это сработало для меня.

Ответ 6

И ответ был уже на SO:

fooobar.com/questions/25865/...

Вы можете просто изменить весь drawable, который отображается в панели progress с помощью атрибута android:indeterminateDrawable.

Ответ 7

Просто заметьте, чтобы использовать

<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/> 

или любой из инверсных индикаторов выполнения, вы должны установить минимальное требование к sdk для Android на уровень 4 (Android 1.6).