So implementieren Sie die Skalierungsanimation für das gemeinsame Element beim Aktivitätsübergang

9

Ich möchte eine Scale-up-Animation für gemeinsam genutzte Elemente in Aktivitätsübergängen implementieren, wie in diesem Link .

Aber ich konnte keine gute Referenz für diesen spezifischen Effekt finden und wie man ihn implementiert. Ist das ein benutzerdefinierter Übergang oder ein Standard? Vielleicht könnte jemand helfen oder ein ausführlicheres Tutorial dazu als offizielle Dokumentation veröffentlichen.

    
Datenshi 13.06.2016, 14:07
quelle

4 Antworten

7

Lassen Sie mich Ihnen hier ein kurzes Tutorial geben:)

Was Sie eigentlich wollen, ist der Übergang eines gemeinsamen Elements zwischen zwei Aktivitäten. Sie werden keine Ansichten teilen, beide Aktivitäten haben unabhängige View Trees. Aber wir geben die Informationen über das freigegebene Element wie seine Ansicht und seine Größe an die neue Aktivität weiter.

Beim Start wird die neue Aktivität alle ihre Ansichten transparent machen und die geteilte Ansicht lokalisieren. Es ändert seine Attribute, um mit diesen übereinzustimmen von der Startaktivität übernommen und macht diese Einzelansicht sichtbar. Anschließend werden Animationen ausgeführt, um die freigegebene Ansicht von diesem Status in ihre natürliche Position im Layout zu überführen. Wenn der Übergang fortschreitet, werden der Fensterhintergrund und der Rest der nicht gemeinsam genutzten Elemente langsam angezeigt Einblenden, bis sie völlig undurchsichtig sind. All dies geschieht automatisch.

Um eine Ansicht als freigegeben zu markieren, legen Sie diese Eigenschaft fest:

%Vor%

in beiden Aktivitätslayouts.

Definieren Sie jetzt beim Starten Ihrer neuen Aktivität aus alter Aktivität eine Übergangsanimation:

%Vor%

Sie können auch mehrere Ansichten für den Übergang angeben. Sie können sogar freigegebene Ansichten zwischen verschiedenen Anwendungen wechseln.

Standardmäßig ist die verwendete Animation move :

%Vor%

Sie können Ihre benutzerdefinierten Animationen jedoch auch in styles.xml:

festlegen %Vor%

Hier ist ein Arbeitsbeispiel für den Übergang von gemeinsam genutzten Elementen wie oben gezeigt: Ссылка

    
Heisenberg 28.07.2016, 16:57
quelle
0

Ссылка

In diesem Video wird erklärt, wie Sie dasselbe Ergebnis erzielen. Die Hauptidee ist

1) Zum Überschreiben der benutzerdefinierten Standardanimation. Hier bedeutet 0, dass standardmäßig keine Animation abgespielt wird.

%Vor%

2) Übersetzen und skalieren Sie das zweite Aktivitätsbild in Ihr GridView-Bild, sodass es vollständig überlappt, und wenden Sie dann die Animation auf den Bildausschnitt der Aktivität an, um die ursprüngliche Position und Skalierung zu verschieben.

Sehen Sie sich auch den Übergang von gemeinsamen Elementen an - Ссылка

    
randy 13.06.2016 14:35
quelle
0

Erstellen Sie Ihre Animation in XML und verwenden Sie folgenden Code:

%Vor%

res / anim / in.xml

%Vor%

res / anim / out.xml

%Vor%     
Neo 13.06.2016 14:23
quelle
0

1: Suchspezifikationen finden:

%Vor%

2: Erstellen Sie eine transparente Aktivität und übergeben Sie die obersten Werte an die neue Aktivität

3: Fügen Sie yourView zu neuen Aktivitäten hinzu und machen Sie so etwas:

%Vor%

4: Verwenden Sie eine Animation wie @Neo für die Skalierung von yourView zum Füllen des Bildschirms

    
Misagh 25.07.2016 10:46
quelle