Проблема с цветом при использовании ProgressBar.setProgressDrawable - PullRequest
2 голосов
/ 27 июня 2011

Я добавляю индикатор прогресса в элементы списка, а также динамически обновляю этот индикатор. Но странная ситуация, с которой я сталкиваюсь, заключается в том, что ..

Когда в моем списке более одного элемента, и я меняю цвет индикатора выполнения с помощью Progressbar.setProgressDrwable(),, все индикаторы выполнения в списке обновляются, и их цвет изменяется по желанию.

Но когда у меня есть только один элемент в списке, этот метод не работает, все, что я вижу, это фон моего индикатора выполнения, а не цвет.

Я также создал свой XML-файл для фона и цвета индикатора выполнения, но он также не работает.

Мой код XMl для ProgressDrawable -

FirstColor.xml

<item android:id="@android:id/background">
    <shape>
        <corners android:radius="15dip" />
        <gradient android:startColor="#A9A9A9" android:centerColor="#A9A9A9"
            android:endColor="#A9A9A9" android:angle="90" />
        <stroke android:width="5dp" android:color="#A9A9A9" />
    </shape>
</item>

<item android:id="@android:id/progress">
     <scale  android:scaleGravity="left" android:scaleWidth="100%" >
        <shape>
            <corners android:radius="15dip" />
            <gradient android:startColor="#ADFF2F" android:centerColor="#ADFF2F"
                android:endColor="#ADFF2F" android:angle="90" />
            <stroke android:width="5dp" android:color="#ADFF2F" />
        </shape>
    </scale>
</item>

SecondColor.xml

<item android:id="@android:id/background">
    <shape>
        <corners android:radius="15dip" />
        <gradient android:startColor="#A9A9A9" android:centerColor="#A9A9A9"
            android:endColor="#A9A9A9" android:angle="90" />
        <stroke android:width="5dp" android:color="#A9A9A9" />
    </shape>
</item>

<item android:id="@android:id/progress">
    <scale android:scaleGravity="left" android:scaleWidth="100%" >
        <shape>
            <corners android:radius="15dip" />
            <gradient android:startColor="#FFBF00" android:centerColor="#FFBF00"
                android:endColor="#FFBF00" android:angle="90" />
            <stroke android:width="5dp" android:color="#FFBF00" />
        </shape>
    </scale>
</item>

и ява-код, который я использую для изменения цвета индикатора выполнения:

* * Progressbar1.setProgressDrawable тысячу двадцать-три (GetResources () getDrawable (R.drawable.FirstColor).); progressbar1.setProgress (amntPercentage.intValue ());

progressbar1.setProgressDrawable (GetResources () getDrawable (R.drawable.SecondColor).); progressbar1.setProgress (amntPercentage.intValue ());

Если кто-нибудь сможет решить мою проблему, это будет очень полезно .. Заранее спасибо ..

1 Ответ

2 голосов
/ 01 июля 2011

Перед установкой нового progressDrawable и настройкой progressvalue убедитесь, что вы не установили progressvalue в '0'. Это происходит потому, что в style.xml для индикатора выполнения мы определяем поля xml только для начала, середины и конца; не для «0».

Я установил значение прогресса в '1', прежде чем менять чертеж, и мой проект работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...