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

Как изменить цвет панели прогресса в 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 в папке drawables и назвал его 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.

4b9b3361

Ответ 1

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

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

Параметр Mode относится к значениям PorterDuff.Mode - доступно здесь.

Ответ 2

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

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

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

Здесь вы можете получить множество цветовых кодов: http://www.nthelp.com/colorcodes.htm или http://www.color-hex.com/