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

Как изменить цвет индикатора выполнения по умолчанию?

Я использую круговую ProgressBar в моей Activty.My Проблема в том, что она не отображается правильно на моей странице, потому что мой цвет BG страницы такой же, как и ProgressBar. Так как я могу изменить цвет ProgressBar, чтобы сделать его видимым? Пожалуйста, помогите

4b9b3361

Ответ 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"