Wie man die Farbe des Fortschrittsbalkenhintergrundes android dynamisch ändert

8

Ich möchte die Hintergrundfarbe einer Fortschrittsanzeige in Android dynamisch ändern. Ich folgte dem "Bonus" -Teil am Ende der Seite dieses Tutorials:

Ссылка

Es ändert die Farbe, aber nur einmal. Bei mehrmaligem Aufruf verschwindet der Fortschrittsbalken. Hier ist der Code.

Hier ist die Fortschrittsbalken-Definition:

%Vor%

Dies ist die Zeichnungsdefinition in res / drawable / green_progress.xml:

%Vor%

Ene Einträge zu rex / values ​​/ colors.xml:

%Vor%

Und schließlich im Code:

%Vor%

Wieder ist das Problem, es funktioniert das erste Mal, aber dann macht der Balken verschwinden.

    
Jack BeNimble 02.06.2011, 22:03
quelle

2 Antworten

21

Siehe Android ProgressBar.setProgressDrawable funktioniert nur einmal? für die Antwort, wiederholt unten:

Was ich herausgefunden habe, ist, dass das Zeichen nicht weiß, wie groß es ist, wenn setprogressdrawable aufgerufen wird. Wenn es anfänglich eingerichtet ist, weiß es seine Größe. Das bedeutet, dass die Suchleiste eine neue Zeichenmenge enthält, aber die Größe der Zeichen ist 0, Sie werden nichts sehen.

Die Lösung besteht darin, zuerst die Grenzen des aktuellen Zeichensatzes zu erhalten, dann den neuen Zeichensatz festzulegen und schließlich die Grenzen erneut festzulegen:

%Vor%     
Jack BeNimble 03.06.2011, 04:03
quelle
7

Nun, für jeden, der programmgesteuert nach dem Programm sucht:

%Vor%

Das Festlegen von IDs für Zeichenobjekte ist äußerst wichtig und sorgt für die Beibehaltung von Begrenzungen und den aktuellen Status der Fortschrittsleiste

    
Štarke 01.10.2015 09:06
quelle

Tags und Links