Ich habe progress_incomplete.xml und progress_complete.xml
Beide Dateien sind so (ich habe alle Farbverläufe und Strichinformationen entfernt, um Platz zu sparen, da es nicht wirklich wichtig ist).
Im Grunde ist die incomplete.xml gelb und komplett grün.
<?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>
In meiner Java-Datei habe ich Folgendes:
if (percentage == 100)
{
// Change colour
progressBar.setProgressDrawable(R.drawable.progress_complete);
}
Ich finde, dass das nicht funktioniert. Ich habe auch setBackground und setBackgroundDrawable versucht, aber die Änderung wird nicht wirksam.
Was mache ich?
Vielen Dank
Antworten:
2 für die Antwort № 1if (percentage == 100) {
// Change colour
Drawable drawable = getResources().getDrawable(R.drawable.progress_complete);
progressBar.setProgressDrawable(drawable);
}
0 für die Antwort № 2
Verweisung Dies Antwort auf SO, Sie können diese Lösung versuchen. Es kann dein Problem lösen.
if (percentage == 100)
{
// Change colour
Rect bounds = progressBar.getProgressDrawable().getBounds();
progressBar.setProgressDrawable(R.drawable.progress_complete);
progressBar.getProgressDrawable().setBounds(bounds);
}