13

Я добавил прогресс бар к моей деятельности, используя следующий код:Как изменить цвет бара Прогресс в Android - (я попробовал один путь, и он не работает)

<LinearLayout 
    android:id="@+id/linlaHeaderProgress" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" 
    android:orientation="vertical" 
    android:visibility="gone" > 

    <ProgressBar 
     android:id="@+id/pbHeaderProgress" 
     android:indeterminateOnly="true" 
     android:keepScreenOn="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 
    </ProgressBar> 
</LinearLayout> 

Тогда Я называю это:

progressbar = (LinearLayout) findViewById(R.id.linlaHeaderProgress); 
progressbar.setVisibility(View.VISIBLE); 

Отображается индикатор выполнения, и я хочу изменить его цвет. По умолчанию индикатор выполнения отображается серым цветом. Вот что я пытался изменить цвет:

Я создал файл XML в папке вводимого коэффициента и назвал его activityindicator.xml содержимое этого XML являются:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:id="@android:id/secondaryProgress"> 


     <color android:color="#f58233" /> 
    </item> 
    <item android:id="@android:id/progress"> 

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

</layer-list> 

И я изменил файл макета, как:

<LinearLayout 
    android:id="@+id/linlaHeaderProgress" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" 
    android:progressDrawable="@drawable/activityindicator" 
    android:orientation="vertical" 
    android:visibility="gone" > 

    <ProgressBar 
     android:id="@+id/pbHeaderProgress" 
     android:indeterminateOnly="true" 
     android:keepScreenOn="true" 
     android:progressDrawable="@drawable/activityindicator" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 
    </ProgressBar> 
</LinearLayout> 

Это то, что я пробовал, но цвет не меняется. Может ли кто-нибудь сказать мне, что я делаю неправильно?

Я использую версию Lollipop.

ответ

52

Если вы хотите изменить цвет, добавить цвет фильтра в прогресс бар:

pbHeaderProgress.getIndeterminateDrawable().setColorFilter(Color.RED, Mode.MULTIPLY); 

Параметр Mode, относится к PorterDuff.Mode значений - имеющихся here.

+1

это дает гибкость, чтобы выбрать из colors.xml также progressBar.getProgressDrawable() setColorFilter (ContextCompat.getColor (getActivity(), R.color.product_status_color), PorterDuff.Mode.MULTIPLY) –

+1

Я хотел se Color.WHITE, и эта строка не работала. Мне пришлось изменить режим porter duff на SRC_ATOP –

+1

Этот метод меняет цвет всех progressbars в приложении –

8

Я только что нашел способ. Я даже не нужен отдельный файл XML, чтобы изменить цвет, как индикатор выполнения типа «неопределенный: правда»

Я использовал следующее, чтобы изменить цвет моего прогресса:

pbHeaderProgress.getIndeterminateDrawable().setColorFilter(Color.parseColor("#C0D000"), android.graphics.PorterDuff.Mode.SRC_ATOP); 

Вы можете получить различные цветовые коды шестигранной здесь:. http://www.nthelp.com/colorcodes.htm или http://www.color-hex.com/

Смежные вопросы