2013-02-20 8 views
10

Ich versuche herauszufinden, wie man Flip-Animation zwischen 2 Fragmenten erstellen.Benutzerdefinierte Flip-Animation zwischen Fragmenten Android-Support-Paket

Ich habe versucht, das CardFlip Training als Leitfaden, aber nicht in der Lage, es zu erreichen. Ich benutze das Android-Support-Paket und stellen Sie es auf Tween-Animation, aber nicht erfolgreich.

Wie man flipping Animationen zwischen Fragment implementieren?

Hier ist die erste 2 xml, die ich aus der Anleitung erstellt habe, vielleicht könntest du sehen, ob etwas falsch läuft. screen_flip_left_in.xml:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 

    <!-- Before rotating, immediately set the alpha to 0. --> 
    <alpha 
     android:valueFrom="1.0" 
     android:valueTo="0.0" 
     android:propertyName="alpha" 
     android:duration="0" /> 

    <!-- Rotate. --> 
    <rotate 
     android:valueFrom="-180" 
     android:valueTo="0" 
     android:propertyName="rotationY" 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:duration="@integer/card_flip_time_full"/> 

    <!-- Half-way through the rotation (see startOffset), set the alpha to 1. --> 
    <alpha 
     android:valueFrom="0.0" 
     android:valueTo="1.0" 
     android:propertyName="alpha" 
     android:startOffset="@integer/card_flip_time_half" 
     android:duration="1" /> 
</set> 

screen_flip_left_out.xml:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" > 
     <!-- Rotate. --> 
    <rotate 
     android:valueFrom="0" 
     android:valueTo="180" 
     android:propertyName="rotationY" 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:duration="@integer/card_flip_time_full" /> 

    <!-- Half-way through the rotation (see startOffset), set the alpha to 0. --> 
    <alpha 
     android:valueFrom="1.0" 
     android:valueTo="0.0" 
     android:propertyName="alpha" 
     android:startOffset="@integer/card_flip_time_half" 
     android:duration="1" /> 

</set> 
+0

Was funktioniert nicht? stürzt spezifischer Code ab? Mehr Details bitte. – QVDev

+0

@QVDev vor allem kann ich nicht den Objectanimator aus dem Führer verwenden, weil es nicht im Android-Support-Paket verfügbar ist, so stürzt der Code dort ab, bis ich zu Tween-Animation wechseln. und dann bekomme ich überhaupt keinen Flip-Effekt. Ich bin mir nicht sicher, ob das daran liegt, dass ich dort ein anderes Interpolatorelement verwende; Ich benutze dieses Android: interpolator = "@ android: anim/accelerate_decelerate_interpolator", weil ich bis zu API Level 8 unterstützen muss und das in der Anleitung ist für API 11 aufwärts. – irobotxxx

+0

Also, wenn Sie es in Tween ändern, funktioniert es richtig? Dies ist in der Tat wahrscheinlich wegen API-Ebene. Vielleicht Tween für ältere APIs und Flip für neuere APIs? Oder erstellen Sie eine benutzerdefinierte Flip-Animation – QVDev

Antwort

1

android: property ist nur für ObjectAnimator (Honeycomb +) Animationen, nicht Animationen aus Lebkuchen anzuzeigen. Eine Karten-Flip-Animation ist nur mit Honeycomb Animator APIs möglich. Ich habe eine Verzweigung der Support-Bibliothek erstellt, um die Verwendung von Animator-API aus NineOldAndroids für Fragmentübergänge zu ermöglichen. Verwenden Sie den Animator-Transition-Zweig meines github project. Sobald Sie die modifizierte Support-Bibliothek haben, schauen Sie sich http://developer.android.com/training/animation/cardflip.html an, um den Animator xml zu erstellen.

+0

Kann sogar Ihr Projekt in Eclipse importieren. Versuchen Sie es für mehrere Stunden (4 Stunden) in Folge - kein Glück. Jedes Mal, wenn im Projekt etwas nicht stimmt oder fehlt. Auch Ihr Projekt möchte ActionBarSherlock, das den Support-v4 selbst verwendet. Könnten Sie bitte einfach ein kompiliertes jar Ihrer Version von supportv4 lib (wie in v4/bin) bereitstellen? – Stan

0

Ihre XML-Datei sollte Werte innerhalb des Tags objectAnimator enthalten, nicht innerhalb von alpha- und rotate-Tags. Der objectAnimator hat propertyName, in dem Sie die Eigenschaftswerte bereits angegeben haben.

Verwandte Themen