Как изменить цвет 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"/>
Как я могу изменить цвет на розовый?
Ответы
Ответ 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)