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

Как изменить цвет ProgressBar?

Я хочу изменить цвет Horizontal ProgressBar цвет

Я пробовал это

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

его работа не работает пока выполняется синим цветом

это мой код

<ProgressBar
                 android:id="@+id/mini_progress"
                 android:layout_marginLeft="10dip"
                 android:layout_marginRight="10dip"
                 style="?android:attr/progressBarStyleHorizontal"
                 android:layout_width="match_parent"
                 android:layout_height="20dip"
                 android:layout_gravity="center_horizontal"
                 android:indeterminate="false"
                 android:indeterminateBehavior="repeat"
                 android:indeterminateOnly="true"
                 android:visibility="gone"/>

Как я могу изменить цвет на розовый?

4b9b3361

Ответ 1

Попробуйте этот код -

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="5dip" />

                <solid android:color="#f58233" />
            </shape>
        </clip>

        <color android:color="#f58233" />
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dip" />

                <solid android:color="#f58233" />
            </shape>
        </clip>

        <color android:color="#f58233" />
    </item>

</layer-list>

Панель выполнения -

<ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="200dp"
            android:layout_height="3dip"
            android:progressDrawable="@drawable/progress_bar" />

Измените цветовые коды в соответствии с вашими потребностями

Ответ 2

создайте новый шаблон с чем-то похожим на следующий (в этом случае pinkprogress.xml):

 <?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" />
    <gradient
            android:startColor="#F5A9F2"
            android:centerColor="#F5A9F2"
            android:centerY="0.75"
            android:endColor="#F5A9F2"
            android:angle="270"
    />
   </shape>
  </item>

<item android:id="@android:id/secondaryProgress">
<clip>
    <shape>
        <corners android:radius="5dip" />
        <gradient
                android:startColor="#80ffd300"
                android:centerColor="#80ffb600"
                android:centerY="0.75"
                android:endColor="#a0ffcb00"
                android:angle="270"
        />
     </shape>
  </clip>
</item>
<item
android:id="@android:id/progress"
>
<clip>
    <shape>
        <corners
            android:radius="5dip" />
        <gradient
            android:startColor="#33FF33"
            android:endColor="#008000"
            android:angle="270" />
    </shape>
 </clip>
</item>

</layer-list>

и установите прогресс в файле xml:

 android:progressDrawable="@drawable/pinkprogress"

Ответ 3

Для меня это сработало хорошо.

введите описание изображения здесь

<ProgressBar
            android:id="@+id/verify_progress"
            style="@android:style/Widget.ProgressBar.Horizontal"
            android:layout_width="match_parent"
            android:layout_height="5dp"
            android:layout_below="@id/verify_phone"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="10dp"
            android:indeterminate="false"
            android:progressDrawable="@drawable/progress_bar" </ProgressBar>

drawable/progress_bar -

  <?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" />
                <gradient
                    android:startColor="@color/Gray"
                    android:centerColor="@color/Gray"
                    android:endColor="@color/Gray"
                    />
            </shape>
        </item>


        <item
            android:id="@android:id/progress"
            >
            <clip>
                <shape>
                    <corners
                        android:radius="5dip" />
                    <gradient
                        android:startColor="@color/PrimaryColor"
                        android:endColor="@color/PrimaryColor" />
                </shape>
            </clip>
        </item>

    </layer-list>

Ответ 4

Я сделал это, чтобы получить требуемый цвет:

    android:indeterminate="true"
    android:indeterminateTintMode="src_atop"
    android:indeterminateTint="@color/myColor"

Отлично работает для меня (API 21 или выше)

Ответ 5

Добавить рендерер:

public class CustomProgressBarRenderer :ProgressBarRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e)
    {
        base.OnElementChanged(e);

        Control.ProgressDrawable.SetColorFilter(Color.FromRgb(182, 231, 233).ToAndroid(), Android.Graphics.PorterDuff.Mode.SrcIn);
        //Control.ProgressTintListColor.FromRgb(182, 231, 233).ToAndroid();
        Control.ProgressTintList = Android.Content.Res.ColorStateList.ValueOf(Color.FromRgb(182, 231, 233).ToAndroid());


    }
}

Ответ 6

Так как API 21 это один вкладыш:

<ProgressBar
            ...
            android:progressTint="@color/colorAccent"/>

Ответ 7

это работает на устройствах с предварительным лепестком.

progressBar.getProgressDrawable().setColorFilter(ContextCompat.getColor(getActivity(),R.color.product_status_color), PorterDuff.Mode.MULTIPLY)