Это старый вопрос, но использование темы здесь не упоминается. Если используемая вами тема по умолчанию использует AppCompat
, цвет вашего ProgressBar
будет colorAccent
, который вы определили.
Изменение colorAccent
также изменит цвет ProgressBar
, но эти изменения также отражаются в нескольких местах. Итак, если вы хотите другой цвет только для определенного ProgressBar
, вы можете сделать это, применив тему только к этому ProgressBar
:
Расширение темы по умолчанию и переопределение colorAccent
<style name="AppTheme.WhiteAccent">
<item name="colorAccent">@color/white</item> <!-- Whatever color you want-->
</style>
А в ProgressBar
добавить атрибут android:theme
:
android:theme="@style/AppTheme.WhiteAccent"
Так это будет выглядеть примерно так:
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="10dp"
android:theme="@style/AppTheme.WhiteAccent" />
То есть вы просто меняете colorAccent
для вашего конкретного ProgressBar
.
Примечание : Использование style
не будет работать. Вам нужно использовать только android:theme
.
Вы можете найти больше использования темы здесь: https://plus.google.com/u/0/+AndroidDevelopers/posts/JXHKyhsWHAH
Редактировать
Вот код для изменения цвета ProgressBar программно.
ProgressBar progressBar = (ProgressBar) findViewById(R.id.pb_listProgressBar);
int colorCodeDark = Color.parseColor("#F44336");
progressBar.setIndeterminateTintList(ColorStateList.valueOf(colorCodeDark));