je veux changer Horizontal
ProgressBar
couleur
j'ai essayé ça
Comment changer la couleur d'un ProgressBar indéfini?
sa marche pas encore progresse en couleur bleu
c'est mon code
<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"/>
comment puis-je changer la couleur en rose?
Essayez ce code -
<?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>
Barre de progression -
<ProgressBar
Android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
Android:layout_width="200dp"
Android:layout_height="3dip"
Android:progressDrawable="@drawable/progress_bar" />
Changer les codes de couleur en fonction de vos besoins
créez un nouveau dessin avec quelque chose de similaire au suivant (dans ce cas, 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>
et mis à progressbar dans le fichier xml:
Android:progressDrawable="@drawable/pinkprogress"
Je l'ai fait pour obtenir la couleur requise:
Android:indeterminate="true"
Android:indeterminateTintMode="src_atop"
Android:indeterminateTint="@color/myColor"
Fonctionne parfaitement pour moi. (API 21 ou supérieure)
Pour moi cela a bien fonctionné.
<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>
Depuis API 21, c'est un one-liner:
<ProgressBar
...
Android:progressTint="@color/colorAccent"/>
Ajouter un moteur de rendu:
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());
}
}
cela fonctionne sur les appareils pré-Lollipop.
progressBar.getProgressDrawable().setColorFilter(ContextCompat.getColor(getActivity(),R.color.product_status_color), PorterDuff.Mode.MULTIPLY)