Ändern Sie Füllfarbe auf Vektorasset in Android Studio
Android Studio unterstützt jetzt die Vektor-Elemente auf 21+, und erstellen pngs für niedrigere Versionen zur compile-Zeit. Ich habe einen Vektor asset (von der Material-Icons), die ich zum ändern der Füllfarbe. Dies funktioniert auf 21+, aber die erzeugte pngs nicht die Farbe ändern. Gibt es eine Möglichkeit, dies zu tun?
<vector android:height="48dp" android:viewportHeight="24.0"
android:viewportWidth="24.0" android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@color/primary" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/>
InformationsquelleAutor der Frage Patrick | 2015-10-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht Bearbeiten Sie die Vektor-Elemente direkt. Wenn Sie mit einem Vektor-drawable in ein ImageButton-Steuerelement, wählen Sie einfach Ihre Farbe in
android:tint
.InformationsquelleAutor der Antwort YYYY-MM-DD
Können Sie es tun.
ABER Sie können nicht verwenden Sie @farbreferenzen für Farben (lame..), sonst wird es Arbeit nur für L+
InformationsquelleAutor der Antwort urSus
Wie gesagt in anderen Antworten, nicht Bearbeiten Sie die Vektor-drawable direkt, sondern Sie können Farbton, der in java-code wie das:
Und der Einfachheit halber, habe ich eine helper-Klasse:
Nur zu benutzen, tun Sie den folgenden:
Oder:
InformationsquelleAutor der Antwort Filipe Bezerra de Sousa
Ändern Vektor-Bild Farbe, die Sie direkt verwenden können android:Farbton="@color/colorAccent"
Ändern Farbe programmatisch
InformationsquelleAutor der Antwort Rana Ranvijay Singh
Derzeit die arbeiten soloution ist
android:fillColor="#FFFFFF"
Nichts für mich gearbeitet, außer hart codieren, in den Vektor
Jedoch, fillcolor und die Tönung könnte bald in die Arbeit. Bitte diese Diskussion für mehr Informationen:
https://code.google.com/p/android/issues/detail?id=186431
Auch die Farben mighr-stick in den cache so löschen app für alle Benutzer helfen könnte.
InformationsquelleAutor der Antwort sivi
Android studio unterstützt nun die Vektoren pre-lollipop. Keine PNG-Konvertierung. Sie können sich noch ändern Ihre Farbe füllen und es wird funktionieren.
In der Sie die Bildansicht verwenden
In Ihrem gradle-Datei,
InformationsquelleAutor der Antwort Sayooj Valsan
wenn man sich zur Unterstützung der alten version vor version lolipop
verwenden Sie die gleichen xml-code mit einigen änderungen
anstelle der normalen
ImageView --> AppCompatImageView
statt
android:src --> app:srcCompat
hier ist Beispiel
vergessen Sie nicht, aktualisieren Sie Ihre gradle als @ Sayooj Valsan erwähnen
Bemerken einem Vektor-dont ever ever geben Sie nie Ihre Vektor-Referenz zu Farben wie dieses
android:fillColor="@color/primary"
geben, dessen hex-Wert .InformationsquelleAutor der Antwort Mina Fawzy
Fügen Sie diese Bibliothek, um die Gradle zu aktivieren Farbe Vektor-drawable in alten android-Geräte.
- und re-sync-gradle. Ich denke, es wird das problem lösen.
InformationsquelleAutor der Antwort Sid
Update:
AppCompat
UnterstützungAnderen Antworten zu Ahnen, wenn
android:tint
funktioniert nur auf 21+ - Geräte nur, AppCompat(v23.2.0 und oben) bietet nun eine abwärtskompatible Handhabung von Farbton-Attribut.So, den Verlauf der Aktion wäre, die Nutzung
AppCompatImageView
undapp:srcCompat
(in der AppCompat-namespace) stattandroid:src
(Android-namespace).Hier ist ein Beispiel:
Und vergessen Sie nicht, aktivieren Vektor drawable-Unterstützung in gradle:
InformationsquelleAutor der Antwort pulp_fiction
Wenn die Vektoren nicht angezeigt werden, individuell einstellen Farben, die mit fillColor dann gesetzt werden können, um ein Standard-widget-parameter.
Versuchen Sie
app:itemIconTint="@color/lime"
zu activity_main.xml um eine Standard-Farbe, - Typ für die widget Symbole.VectorDrawable @ Entwickler.android
InformationsquelleAutor der Antwort lubi