Kann GradientColor verwendet werden, um einen Farbverlauf für eine Füllung oder einen Strich vollständig in XML zu definieren?

10

Ich habe mir die Dokumentation für GradientColor Ссылка angesehen. Wie kann ich eine Farbverlaufsfarbe in XML definieren und auf einen XML-Vektor anwenden, der gezeichnet werden kann?

Ich habe es in color.xml, styles.xml und innerhalb eines XML-Vektors ausprobiert.

Ich erhalte den Fehler "Konnte @ id / gradclor nicht in eine ColorStateList konvertieren" mit:

%Vor%

oder Msgstr "Konnte #FFFFFFFF # 00FFFFFF 145 in eine ColorStateList konvertieren, wenn:

verwendet wurde %Vor%

mit den folgenden in color.xml:

%Vor%     
TTransmit 29.11.2016, 17:30
quelle

3 Antworten

19

Ich habe es endlich geschafft. Gradient Farbe Funktion wird nicht unterstützt noch in Android Studio (aktuelle Version ist 2.2), so dass es hilft Ihnen nicht mit dem automatischen Vervollständigung aber Markierungen Gradienten-Tag als Fehler statt. Trotzdem ist das Feature tatsächlich funktioniert, habe ich es erfolgreich auf dem Nexus 5X / API 24. Natürlich getestet, müssen Sie ein API 24+ Gerät verwenden, da sonst diese Funktion nicht von O unterstützt wird.

Zuerst müssen Sie eine Farbressourcendatei wie folgt hinzufügen:

%Vor%

Bitte beachten Sie die Start- / Endparameter, da sie für die Vektorverläufe essentiell sind.

Legen Sie diese Datei unter einem Namen in den Ordner res / color. Ich habe es gradient.xml genannt, also ist der vollständige Pfad res / color / gradient.xml. Danach können Sie in Farbattributen, einschließlich Vektorpfadfarben, auf diese Ressource verweisen:

%Vor%

Beachten Sie den Verweis auf die Farbverlaufsressource in strokeColor. Hoffe das hilft!

    
Alex Kravchenko 02.12.2016, 08:15
quelle
3

Die neueste Vorschau von Android (3.1 Canary 6) enthält ein Beispiel mit Vektorressourcen mit einem Farbverlauf.

%Vor%     
Steven Spungin 05.01.2018 15:12
quelle
1

Ich bin mir nicht sicher, aber nach diesem Dokument :

  

Android: Strichfarbe   Gibt die Farbe an, die zum Zeichnen der Pfadkontur verwendet wird. Dies kann eine Farbe oder, für SDK 24 + , eine Farbstatusliste oder eine Farbverlaufsfarbe sein (siehe Farbverlaufsfarbe und Farbverlaufsfarbe). Wenn diese Eigenschaft animiert ist, überschreibt jeder von der Animation festgelegte Wert den ursprünglichen Wert. Wenn diese Eigenschaft nicht angegeben wird, wird keine Pfadgliederung gezeichnet.

Wenn Ihr SDK & lt; 24 ist, sollte es nur eine Farbe sein.

Andererseits, wenn Ihr sdk größer als 24 ist, denke ich, dass es besser wäre, <gradient/> anstelle von <color/>

zu verwenden, um Ihren Pfad zu füllen     
pooyan 02.12.2016 08:29
quelle