Я использую круговую ProgressBar в моей Activty.My Проблема в том, что она не отображается правильно на моей странице, потому что мой цвет BG страницы такой же, как и ProgressBar. Так как я могу изменить цвет ProgressBar, чтобы сделать его видимым?
Пожалуйста, помогите
Как изменить цвет индикатора выполнения по умолчанию?
Ответ 1
Сделайте одно имя файла xml progress.xml и поместите его в папку res/xml и напишите код ниже в этом XML файле.
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
android:toDegrees="360">
<shape android:shape="ring" android:innerRadiusRatio="3"
android:thicknessRatio="8" android:useLevel="false">
<size android:width="76dip" android:height="76dip" />
<gradient android:type="sweep" android:useLevel="false"
android:startColor="#447a29"
android:endColor="#447a29"
android:angle="0"
/>
</shape>
</rotate>
после создания этого xml файла установите для фона progressbars этот xml..
Как
<ProgressBar
android:id="@+id/ProgressBar01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background = "@xml/progress">
Ответ 2
Это старый вопрос, но использование темы здесь не упоминается. Если ваша тема по умолчанию использует 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));
Ответ 3
Самый простой способ - использовать android: indeterminateTint:
<ProgressBar
android:indeterminate="true"
android:indeterminateTint="@android:color/black"
........... />
Ответ 4
в xml u можно применить цвет, подобный этому
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/loader"
android:indeterminateTint="@color/my_color"
android:layout_centerInParent="true"/>
Ответ 5
создать доступный для выполнения файл
<?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>
<corners android:radius="5dip" />
<solid android:color="@color/colorWhite" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<solid android:color="@color/colorPrimary" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners
android:radius="5dip" />
<solid android:color="@color/colorPrimary" />
</shape>
</clip>
</item>
и установите Android: progressDrawable = "@вытяжке/app_progressbar_back"
как это
<ProgressBar
android:id="@+id/dialogProgressView"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progressDrawable="@drawable/app_progressbar_back"
android:progress="50"
android:layout_marginTop="@dimen/margin_20" />
Ответ 6
вы также можете изменить только атрибут
android:indeterminateDrawable="@drawable/yourxmlfile"
и сохраните этот стиль
style="@android:style/Widget.ProgressBar.Small"
Ответ 7
вот как вы можете это сделать с помощью java-кода.
progressBar.getProgressDrawable().setColorFilter(ContextCompat.getColor(getActivity(),R.color.product_status_color), PorterDuff.Mode.MULTIPLY)
Ответ 8
Вот несколько объяснений. Для изменения фона Indeterminate ProgressBar вам необходимо вращающееся кольцо, потому что оно вращается. В ответ @Chirag он определил вращающееся кольцо и применил его на фоне ProgressBar. Если у вас есть Horizontal ProgressBar, вам понадобится rectangle.
PS: Я не пробовал другие формы.
Ответ 9
Вы также можете программно изменить цвет своей панели прогресса в своих действиях oncreate или ваших фрагментах onViewCreated()
pBar.getIndeterminateDrawable().setColorFilter(0xFFFF0000, android.graphics.PorterDuff.Mode.MULTIPLY);
Здесь применяется цвет "0xFFFF0000", красный. Вы можете изменить его в соответствии с вашими потребностями.
Ответ 10
Я использую версию Android 2.3.1. Я создаю XML файл с именем progressbar и вызываю его в теге индикатора выполнения макета android: progressDrawable = "@drawable/progressbar"
<item android:id="@+id/progress">
<clip>
<shape>
<gradient android:startColor="@color/textColor"
android:centerColor="@color/textColor"
android:endColor="@color/textColor"
android:gradientRadius="20dp"
>
</gradient>
</shape>
</clip>
</item>
Ответ 11
для меня эти две строки должны были быть там, чтобы он работал и менял цвет:
android:indeterminateTint="@color/yourColor"
android:indeterminateTintMode="src_in"
PS: но это доступно только с Android 21
Ответ 12
Попробуйте использовать это в XML
android:indeterminateDrawable="@drawable/yourxmlfile"
style="@android:style/Widget.ProgressBar.Small"