So ändern Sie die Farbe des Vektors drawable-Pfad auf die Schaltfläche klicken
Mit der neuen android-Unterstützung-update, Vektor drawables bekommen Abwärtskompatibilität. Ich habe ein Vektor-Bild mit verschiedenen Pfaden. Ich möchte die Farbe der Pfade zu ändern, klicken Sie auf eine Schaltfläche oder programmgesteuert basierend auf einem input-Wert. Ist es möglich, den Zugriff auf die name-parameter des Vektor-Pfad? Und dann die Farbe ändern.
InformationsquelleAutor der Frage suku | 2016-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie diese zum ändern eines Pfads Farbe in Ihre Vektor-drawable
Bibliothek ist hier: https://github.com/devsideal/VectorChildFinder
InformationsquelleAutor der Antwort Deven
Die Farbe des ganzen Vektor kann geändert werden, indem setTint.
Richten Sie Ihre Bildansicht in Ihrer layout-Datei wie diese:
Dann ändern Sie die Farbe des Bildes:
Hinweis:
myImageView.getDrawable()
gibt nullpointerexception, wenn der Vektor drawable eingestellt ist, um die Bildansicht als hintergrund.InformationsquelleAutor der Antwort Marco HC
Können Sie diese Methode verwenden, um die Farbe zu ändern in der unteren API zum ändern vector Farbe im fragment
statt getActivity, die Sie verwenden sollten MainActivity.dieses für die änderung Vektor Farbe in der Aktivität
InformationsquelleAutor der Antwort Arshdeep Singh
Überprüfen Sie meine Antwort auf diese Frage: https://stackoverflow.com/a/38418049/1335438.
Ist es eine tolle Idee, wie man dies mit Themen und parametrisieren die Wege, um der Lage sein, um Sie dynamisch.
InformationsquelleAutor der Antwort saiyancoder
Du kann ändern Sie die Farbe der einzelnen Pfad zur Laufzeit, ohne mit der spiegelung.
VectorMaster bietet eine dynamische Kontrolle über die Vektor-drawables. Jede und jeder Aspekt der Vektor-drawable gesteuert werden kann dynamisch (über Java-Instanzen), die diese Bibliothek nutzen.
Fügen Sie das folgende dependency in Ihre app zu bauen.gradle
In Ihrem Fall benötigen Sie eine einfache Farbe änderung:
Vektor-Beispiel: your_vector.xml
XML:
Java:
Aus: https://github.com/harjot-oberai/VectorMasterlizensiert unter der MIT.
Haben Sie jetzt volle Kontrolle über die Vektor-drawables.
InformationsquelleAutor der Antwort JeRoll
Gibt es mehrere Möglichkeiten, das gleiche Material, aber dies funktioniert für beide Vektor Drawables sowie SVG (Lokal/Netzwerk).
(änderung R. Farbe.headPink mit der Farbe Ihrer Wahl)
InformationsquelleAutor der Antwort Moonis Abidi
Wie bereits von @Eyal in diesem Beitrag
https://stackoverflow.com/a/32007436/4969047
Du nicht ändern Sie die Farbe der einzelnen Pfad zur Laufzeit.
Blick auf den source-code von
VectorDrawableCompat
, die einzige Methode machen, dass das innere element namegetTargetByName
die im inneren private Zustand KlasseVectorDrawableCompatState
vonVectorDrawableCompat
.Da es eine package-private (default) - Sie können es nicht verwenden (es sei denn, Sie verwenden Reflexion).
InformationsquelleAutor der Antwort Shubhral