1

У меня есть ProgressBar XML:Xamarin: Progress Bar Изменение цвета

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <ProgressBar 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/progressBar" 
     style="@android:style/Widget.ProgressBar.Large" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="25sp" 
     android:text="Loading..." /> 
</LinearLayout> 

И мне нужно изменить цвет по умолчанию (серый). Мне нужно изменить цвет программно или xml-формы.

В моей деятельности у меня есть:

SetContentView(Resource.Layout.LoadingBar); 
var progressBar = FindViewById<ProgressBar>(Resource.Id.progressBar); 

ответ

1

Я думаю, что это то, что вы ищете. Мой пример: если значение секунд становится меньше 10, цвет индикатора выполнения меняется на красный.

if (seconds < 10) { 
progressBar.ProgressDrawable. 
SetColorFilter (Android.Graphics.Color.Red, Android.Graphics.PorterDuff.Mode.Multiply);} 
0

Это изменение кода ожидаемого цвета и в центре экрана

<ProgressBar 
    android:id="@+id/loading_progress" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:visibility="invisible" 
    android:indeterminate="true" 
    android:indeterminateTintMode="src_atop" 
    android:indeterminateTint="@color/colorprimary" 
    android:progressDrawable="@drawable/login_loading" />