Ich habe festgestellt, dass das Einstellen der Fortschrittsanzeige keine vollständige Lösung ist. Es wird die Farbe des Sterns ändern, aber nicht auf partielle Sternfüllungen, wenn deine Schrittweite kleiner als 1 ist. Meiner Erfahrung nach musst du auch secondaryProgressTint setzen, um zu verhindern, dass der Standard-Sternenstich seinen hässlichen Kopf aufbaut. Hier ist mein Code:
%Vor%Ich hoffe, das hilft jemandem in meiner Situation.
Du brauchst 3 Sterne Bilder (star_filled_show.png, star_half_show.png und star_empty_show.png) und ein xml, das ist alles.
Platziere diese 3 Bilder in res/drawable
.
Geben Sie das folgende ratingbarstars.xml
:
Sagen Sie Ihrer Bewertungsleisten-Definition, dass sie dieses Zeichen verwenden soll
%Vor%Als ich es getan habe, und ich musste den TintMode auch setzen.
%Vor%nur für api Version 21 und höher
Es ist ein wenig kompliziert in dem erwähnten Blog, ich habe eine ähnliche, aber einfachere Methode benutzt. Sie benötigen 3 Sterne Bilder (red_star_full.png, red_star_half.png und red_star_empty.png) und ein xml, das ist alles.
Legen Sie diese 3 Bilder auf res / drawable.
Geben Sie die folgende ratingbar_red.xml:
%Vor%und schließlich sagen Sie Ihre ratingbar Definition, um dies zu verwenden, d. h.
%Vor%Das ist es.
Die Bewertungsleiste wird automatisch zur Laufzeit verwendet, um die Farbe auf dem Touch-Stern zu ändern.
Fügen Sie zunächst einen Stil in der Datei app \ src \ main \ res \ values \ styles.xml hinzu:
%Vor%Dann fügen Sie in Ihrer Bewertungsleiste das folgende Thema hinzu:
%Vor%