So ändern Sie Standard-ProgressBar circle color auf Android
Ich bin derzeit mit einer externen Bibliothek in mein Android-Projekt importiert über gradle.
Diese Bibliothek zeigt eine Benachrichtigungsleiste mit einem ProgressBar-Kreis.
Dies ist der code, den ich gefunden in Quellen :
<ProgressBar
android:id="@+id/progress_bar"
android:layout_height="match_parent"
android:layout_marginBottom="4dp"
android:layout_marginTop="4dp"
style="@style/SuperActivityToast_Progress_ProgressBar"/>
Stil verbunden ist :
<style name="SuperActivityToast_Progress_ProgressBar" parent="android:Widget.Holo.ProgressBar">
<item name="android:layout_width">32dp</item>
<item name="android:layout_marginLeft">8dp</item>
</style>
Wenn ich verstehe, correclty, die Farbe des Kreises gezeigt ist abgeleitet von dem Standardwert ( grün auf meinem Handy ).
Ich muss es ändern!
Nun, ich kann nicht den Quellcode ändern, und die Bibliothek selbst nicht bieten mir die Möglichkeit, den Stil programmgesteuert.
Gibt es eine Möglichkeit das zu ändern Standard Stil auf app-Ebene oder besser überschreiben Sie diese bestimmten Stil?
Dank
Davide
mögliche Duplikate von Android ändern Horizontalen Fortschrittsbalken Farbe
InformationsquelleAutor Davide | 2015-08-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die AppCompat Thema es nutzt die accentColor Tönung der Kreis.
Wenn Sie möchten, eine Tönung, um eine andere Farbe als das Thema, dann sollten Sie erwägen, ThemeOverylay. E. g. Wenn Sie möchten, um den Kreis Farbton
red
können Sie das folgende tun:in Ihrem
styles.xml
in Ihrem
ProgressBar
, das Thema gesetzt werdenRedAccent
.Und Ihr Kreis wird nun in Roter Farbe!
Ja @CliveSargeant, guter Fang. es muss " @style/' als wir auf Stil. Ich habe aktualisiert die Antwort.
Das ist ein wirklich nützlicher Ansatz. Ich hatte nicht realisiert, könnten wir überschreiben die Anwendung von Stilen in dieser Art und Weise!
Sie sind die definition einer Legende
InformationsquelleAutor bond
Nach mehreren versuchen habe ich eine Lösung gefunden :
Einfach, ich werde eine Referenz der Fortschritt-bar-Objekt erstellt durch die Bibliothek und ich Sie ändern Attribute. ( in meiner Tätigkeit muss ich tun, dass in der "OnStart" - Methode, sonst ist es ungültig )
Der wichtigste Teil ist die "setColorFilter", die Magie.
InformationsquelleAutor Davide
Für die Zukunft Verweise, diese änderung hat für mich gearbeitet ist:
Änderung der
colorControlActivated
innerhalbAppTheme
in Ihrem values/styles.xml Datei:Mit diesem Ansatz werden Sie nicht brauchen, um jede Aktion auf Ihrem
<ProgressBar/>
- tag in der xml-Datei.InformationsquelleAutor Red M