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

Я ищу очень очевидную вещь (на других языках!), И это сводит меня с ума!

Я хотел бы знать, как я могу изменить неопределенный цвет ProgressBar от базового белого / серого цвета до черного? Когда я изменяю indeterminateDrawable, я получаю статическое изображение вместо движущегося анимированного progressBar. Есть ли способ сделать это просто в xml?

Спасибо !

Solutions Collecting From Web of "Как изменить андроид неопределенный цвет ProgressBar?"

Чтобы получить ProgressBar в теме по умолчанию, которая должна использоваться на белом / заднем фоне, используйте один из обратных стилей:

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

Обычно это дает вам черный цвет на прозрачном ProgressBar, но некоторые ОС устанавливают пользовательские активы. Если вы ищете определенный цвет, вам придется сворачивать свои собственные чертежи, следуя инструкциям CommonsWare.

 progressBar.getIndeterminateDrawable().setColorFilter( getResources().getColor(Your_Color), android.graphics.PorterDuff.Mode.SRC_IN); 

И замените Your_Color на нужный цвет: R.color.your_color_code

Я делаю образец проекта и публикую его в своем блоге. Пожалуйста, посмотрите. http://www.hrupin.com/2011/09/21/how-to-make-custom-indeterminate-progressbar-in-android-or-how-to-change-progressbar-style-or-color

Надеюсь, это поможет вам

Я вижу, что другие ответы довольно старые, чтобы изменить неопределенный цвет ProgressBar, вы должны просто установить атрибуты android:indeterminateTint и android:indeterminateTintMode в свой элемент ProgressBar непосредственно в XML:

 <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminateTint="@color/colorPrimary" android:indeterminateTintMode="src_in" android:indeterminate="true" /> 

android:indeterminateTint – Оттенок для применения к неопределенному индикатору хода.

Должно быть значение цвета в виде "#rgb" , "#argb" , "#rrggbb" , "#aarrggbb" или ссылка на ресурс @color/colorPrimary .

android:indeterminateTintMode – Режим наложения, используемый для применения оттенка индикатора хода.

Должно быть одно из следующих постоянных значений:
add , multiply , screen , src_atop , src_in или src_over

Методы Getter и Setter для этих атрибутов:

  • getIndeterminateTintList()
  • getIndeterminateTintMode()
  • setIndeterminateTintList(ColorStateList tint)
  • setIndeterminateTintMode(PorterDuff.Mode tintMode)

Все они были добавлены в API уровня 21

 <?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/bg" /> <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/secondary" /> <item android:id="@android:id/progress" android:drawable="@drawable/progress" /> </layer-list> 

На самом деле все, что вам нужно сделать (как для cirle, так и для bar), – создать xml-файл в drawable, как показано ниже …… progress_spinner_001 указывает на любое изображение u, которое хочет оживить и продлить … сколько времени вы хотите отображать каждый Frame for ……. и set ur android: indeterminateDrawable = filename_in_drawable ….

 <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/progress_spinner_001" android:duration="300" /> <item android:drawable="@drawable/progress_spinner_002" android:duration="300" /> <item android:drawable="@drawable/progress_spinner_003" android:duration="300" /> <item android:drawable="@drawable/progress_spinner_004" android:duration="300" /> <item android:drawable="@drawable/progress_spinner_005" android:duration="300" /> <item android:drawable="@drawable/progress_spinner_006" android:duration="300" /> <item android:drawable="@drawable/progress_spinner_007" android:duration="300" /> <item android:drawable="@drawable/progress_spinner_008" android:duration="300" /> </animation-list> 

Ps u может потребоваться изменить размер индикатора прогресса, чтобы показать по желанию