/ / Modifica drawable su ProgressBar Android - Android, barra di avanzamento

Cambia drawable su Android ProgressBar - android, barra di avanzamento

Ho "progress_incomplete.xml e progress_complete.xml

Entrambi i file sono così (ho rimosso tutte le sfumature e le informazioni sul tratto per risparmiare spazio perché non è molto importante).

Fondamentalmente incomplete.xml ha i colori gialli e completo ha i colori verdi.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
...
</shape>
</item>

<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
...
</shape>
</clip>
</item>
<item
android:id="@android:id/progress"
>
<clip>
<shape>
...
</shape>
</clip>
</item>

</layer-list>

Nel mio file Java, ho questo:

            if (percentage == 100)
{
// Change colour
progressBar.setProgressDrawable(R.drawable.progress_complete);
}

Ma sto scoprendo che non funziona. Ho anche provato setBackground e setBackgroundDrawable ma la modifica non ha effetto.

Cosa faccio?

Grazie

risposte:

2 per risposta № 1
if (percentage == 100) {
// Change colour
Drawable drawable = getResources().getDrawable(R.drawable.progress_complete);
progressBar.setProgressDrawable(drawable);
}

0 per risposta № 2

refering Questo rispondi su SO, puoi provare questa soluzione. Potrebbe risolvere il tuo problema.

if (percentage == 100)

{
// Change colour
Rect bounds = progressBar.getProgressDrawable().getBounds();
progressBar.setProgressDrawable(R.drawable.progress_complete);
progressBar.getProgressDrawable().setBounds(bounds);
}