Fehler beim Testen von AnimatedVectorDrawable, "Kann nicht von x zu z mappen"

7

Ich wollte einen AnimatedVectorDrawable erstellen, damit mein FAB zumindest etwas so fabelhaft aussehen kann wie dieses , mit Animationen und so.

Ich fand dieses großartige Tutorial , wie man es macht verwenden & amp; Implementiere sie usw., und später fand ich ein sehr nützliches Tool zum Konvertieren von SVG's in Android-VectorDrawables, und konvertierte diese zwei Bilder: Ссылка Ссылка

Das ist nun der Code, den ich mir ausgedacht habe:

zeichenbare / vector_add.xml:

%Vor%

anim / add_to_done.xml:

%Vor%

zeichenbare / ic_add.xml:

%Vor%

Wenn ich diesen Code ausführe, habe ich nur diesen Fehler:

%Vor%

Meine Vermutung wäre, dass die zwei Pfade in den zwei Svg's zu verschieden sind, also kann Android die Animation nicht selbständig behandeln, und ich muss für jeden "Checkpoint" der Animation wie mehrere VectorDrawables machen.

... Ich bin wahrscheinlich mit dieser Theorie völlig daneben, aber es ist das logischste, was ich mir vorstellen kann.

Ich habe nicht viel Erfahrung (überhaupt keine Erfahrung) mit Vektoren & amp; Illustrator usw., so dass jede Hilfe, die Sie sich vorstellen können, sehr geschätzt wird.

Schönen Tag noch, und frohe Weihnachten.

Mit freundlichen Grüßen, Måns.

    
GuiceU 23.12.2014, 19:32
quelle

2 Antworten

6

Die VectorDrawables, die Sie morphen möchten, müssen kompatibel sein, was bedeutet, dass sie einfache Komplexität haben müssen; ähnliche Länge und Anzahl der Befehle (dies wurde von pksink erwähnt).

Auf diese Weise habe ich das Problem gelöst, indem ich das "Plus" -Symbol benutze und die Abmessungen manuell in Android Studio ändere, bis ich etwas hatte, das einem Häkchen ähnelte.

Plusvektor:

%Vor%

CheckMark-Vektor:

%Vor%

Beachten Sie, dass diese die gleiche Anzahl von Befehlen haben. Das Häkchen sieht nicht perfekt aus, aber Sie können es nicht bemerken, wenn Sie es in eine schwebende Aktionsschaltfläche einfügen.

Zusätzlicher Tipp: Verschieben Sie die pathData in eine String-Variable. Auf diese Weise ist es einfacher, Konsistenz in Ihrem ObjektAnimatoren zu halten.

    
Tykin 25.04.2015, 23:58
quelle
21

Wenn Sie möchten, dass zwischen beliebigen SVG-Bildern (oder VectorDrawable ) morpht, müssen Sie die entsprechenden Pfade ausrichten, damit sie für das Morphing kompatibel sind . Dies ist eine sehr mühsame Aufgabe, aber es gibt ein Befehlszeilen-Tool, das das für Sie erledigen kann: VectAling

Sie müssen einfach das Werkzeug VectAlign von der Befehlszeile aus ausführen, indem Sie Ihre ursprünglichen Pfade übergeben, und es werden automatisch "morphbare" Sequenzen erstellt.

Anwendungsbeispiel:

%Vor%

Ausgabe:

%Vor%

Jetzt können Sie diese neuen Sequenzen in Ihrem Android-Projekt verwenden und zwischen ihnen wie gewohnt mit einem AnimatedVectorDrawable !

morphen

Sie können auch SVG-Dateien übergeben:

%Vor%

Dies ist eines der Beispiele aus der VectAlign Demo :

    
bonnyz 03.09.2015 23:14
quelle