Umkehr der Morphing-Animation von Pfeil zu Häkchen

8

Ich versuche, den Morphing-Effekt zu erzielen, wenn der Benutzer auf myButton klickt, sollte das Bild in der ImageView von Pfeil zu Häkchen wechseln. Und wenn er erneut klickt, sollte der Prozess umgekehrt werden: das Häkchen sollte in Pfeil umwandeln.

Das habe ich getan:

animierte_vector.xml:

%Vor%

animator_upvote_to_checkmark.xml:

%Vor%

Und so spiele ich die Animation:

%Vor%

Dies verwandelt den Pfeil in ein Häkchen, wie kann ich den Prozess umkehren?

    
SMahdiS 27.02.2016, 07:31
quelle

2 Antworten

17

Wenn Ihre Ansicht checkable und auch Ihre minsdk > 21 ist, können Sie StateListAnimator mit AnimatedVectorDrawable verwenden, aber weil appcompat jetzt vectorDrawable und AnimatedVectorDrawable unterstützt und auch eine Einschränkung für die Verwendung von all hat DrawableContainers Ich nehme den obigen Ansatz nicht.

  

Also lassen Sie mich Ihnen sagen, was funktionieren könnte:

     

DrawableContainers, die auf andere drawbare Ressourcen verweisen, die   enthalten nur eine Vektorressource. Zum Beispiel eine StateListDrawable, die   verweist auf andere Dateien, die einen Vektor enthalten.

von Chris Banes

Um das zu erreichen, werde ich die benutzerdefinierte ImageView erstellen und jedes Mal, wenn darauf geklickt wird, müssen Sie morph function aufrufen, um die entsprechende vectorAnimatorDrawable auszuführen.

Also Code und Demo:

%Vor%

und MainActivity :

%Vor%

in der Layoutdatei müssen Sie es wie folgt verwenden:

%Vor%

und Ressourcen für diejenigen, die es versuchen wollen:

res / animator / arrow_to_checkmark

%Vor%

res / animator / häkchen_an_arrow

%Vor%

res / Zeichen / Pfeil_zu_Kennzeichen

%Vor%

res / drawable / checkmark_to_arrow

%Vor%

res / drawable / ic_arrow_up_24dp

%Vor%

res / drawable / ic_checkmark_24dp

%Vor%     
user5703518 29.03.2016 08:06
quelle
7

Ich werde mit Circular Progress Button gehen, Sie können es nach Ihren Bedürfnissen anpassen oder erweitern Sie die Bibliothek (seit. Es ist Open Source). Ich benutze das schon seit einiger Zeit und es ist ziemlich einfach in deine Projekte zu integrieren.

Außerdem kannst du daraus lernen und deine eigene Bibliothek erstellen: -)

Hier das Git-Repository CircularProgressButton

Sie können auch andere hervorragende Open-Source-Anwendungen wie den Android Morphing-Button

ausprobieren

    
Carlos 01.04.2016 15:32
quelle

Tags und Links