Android ProgressBar.setProgressDrawable только работает однажды?

В палитре цветов у меня есть 3 SeekBars для Оттенка, Насыщенности и Значения. Вызов setProgressDrawable на этих SeekBars только работает однажды - при инициализации от onCreate. Когда пользователь обновляет Оттенок SeekBar, я хочу назвать setProgressDrawable для Насыщенности и Значения SeekBars, показать пользователю их выборы цветов для нового Оттенка.

Но все вызовы к setProgressDrawable (после того, как начальные от onCreate) заставьте SeekBar быть очищенным.

Как я могу обновить градиент фона своего SeekBars, основанного на вводе данных пользователем?

12
задан Nikhil 9 July 2012 в 12:19
поделиться

1 ответ

Эй, я нашел решение этой проблемы, сначала вы должны установить drawable на ProgressBar, вызвав setProgresssDrawable(drawable) и только потом установить значение, а не наоборот. Это сработает.

Чтобы установить progress drawable:

Используйте drawable xml файл, подобный этому:

<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="#00CCCC"
            android:centerColor="#00CCCC" android:centerY="0.75"
            android:endColor="#00CCCC" android:angle="270" />
    </shape>
</item>
<item android:id="@android:id/secondaryProgress">
    <clip>
        <shape>
            <corners android:radius="5dip" />
            <gradient android:startColor="#00CCCC"
                android:centerColor="#00CCCC" android:centerY="0.75"
                android:endColor="#00CCCC" android:angle="270" />
        </shape>
    </clip>
</item>
<item android:id="@android:id/progress">
    <clip>
        <shape>
            <corners android:radius="5dip" />
            <gradient android:startColor="#00CCCC" android:centerColor="#00CCCC"
                android:centerY="0.75" android:endColor="#00CCCC" android:angle="270" />
        </shape>
    </clip>
</item>

сохраните его в папке /drawable и используйте в функции setProgressDrawable(drawable)

1
ответ дан 2 December 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: