Wie kann ich horizontal ein Bild mit einer Tween-Animation in Android spiegeln? Ich möchte keinen 3D-Effekt. Ich muss nur das Bild spiegeln.Bild horizontal mit Tween-Animation spiegeln. Nein 3D
Antwort
Ich denke, negative Werte für scaleX oder scaleY resultieren in der Spiegelung des Bildes. Wenn es Ihr Fall ist, könnten Sie die Skala von 1 bis -1 animieren. Ist das was du brauchst?
Ja, Sie haben Recht. Es kann so gemacht werden, aber ich habe einige Probleme, die positive und negative Werte abwechseln. Sieh dir das an:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:shareInterpolator="false" >
<!-- <alpha -->
<!-- android:duration="200" -->
<!-- android:fromAlpha="0" -->
<!-- android:startOffset="0" -->
<!-- android:toAlpha="1" /> -->
<scale
android:duration="400"
android:fromXScale="0"
android:fromYScale="0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.4"
android:toYScale="0.4" />
<!-- <alpha -->
<!-- android:duration="200" -->
<!-- android:fromAlpha="1" -->
<!-- android:startOffset="200" -->
<!-- android:toAlpha="0" /> -->
<!-- <alpha -->
<!-- android:duration="200" -->
<!-- android:fromAlpha="0" -->
<!-- android:startOffset="400" -->
<!-- android:toAlpha="1" /> -->
<scale
android:duration="400"
android:fromXScale="-0.4"
android:fromYScale="0.4"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="400"
android:toXScale="-0.8"
android:toYScale="0.8" />
<!-- <alpha -->
<!-- android:duration="200" -->
<!-- android:fromAlpha="1" -->
<!-- android:startOffset="600" -->
<!-- android:toAlpha="0" /> -->
<!-- <alpha -->
<!-- android:duration="200" -->
<!-- android:fromAlpha="0" -->
<!-- android:startOffset="800" -->
<!-- android:toAlpha="1" /> -->
<scale
android:duration="400"
android:fromXScale="0.8"
android:fromYScale="0.8"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="800"
android:toXScale="1.2"
android:toYScale="1.2" />
<!-- <alpha -->
<!-- android:duration="200" -->
<!-- android:fromAlpha="1" -->
<!-- android:startOffset="1000" -->
<!-- android:toAlpha="0" /> -->
<!-- <alpha -->
<!-- android:duration="200" -->
<!-- android:fromAlpha="0" -->
<!-- android:startOffset="1200" -->
<!-- android:toAlpha="1" /> -->
<scale
android:duration="400"
android:fromXScale="-1.2"
android:fromYScale="1.2"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="1200"
android:toXScale="-1.6"
android:toYScale="1.6" />
<!-- <alpha -->
<!-- android:duration="200" -->
<!-- android:fromAlpha="1" -->
<!-- android:startOffset="2400" -->
<!-- android:toAlpha="0" /> -->
</set>
Dies sollte ein Bild erzeugen, das manchmal wächst und umkippt ... aber es funktioniert nicht. Es zeigt nur ein Bild, das einige Male wächst ... aber ohne das Bild zu spiegeln!
Was mache ich falsch?
EDITED ----
Schließlich habe ich einen Weg gefunden, es funktioniert. Ich mache den Flip und die Größe in zwei Teile. Aber ich kann nicht mehr Größen hinzufügen, weil es nichts zeigen würde ... versuche, die kommentierten Blöcke auskommentieren und mir sagen, warum es so funktioniert ...
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:shareInterpolator="false">
<alpha
android:duration="200"
android:fromAlpha="0"
android:startOffset="0"
android:toAlpha="1" />
<scale
android:duration="400"
android:fromXScale="0"
android:fromYScale="0"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.4"
android:toYScale="0.4" />
<scale
android:duration="1"
android:fromXScale="0.4"
android:fromYScale="0.4"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="400"
android:toXScale="-0.4"
android:toYScale="0.4" />
<scale
android:duration="399"
android:fromXScale="-0.4"
android:fromYScale="0.4"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="401"
android:toXScale="-0.8"
android:toYScale="0.8" />
<scale
android:duration="1"
android:fromXScale="-0.8"
android:fromYScale="0.8"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="800"
android:toXScale="0.8"
android:toYScale="0.8"/>
<scale
android:duration="399"
android:fromXScale="0.8"
android:fromYScale="0.8"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="801"
android:toXScale="1.2"
android:toYScale="1.2" />
<scale
android:duration="1"
android:fromXScale="1.2"
android:fromYScale="1.2"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="1200"
android:toXScale="-1.2"
android:toYScale="1.2"/>
<scale
android:duration="399"
android:fromXScale="-1.2"
android:fromYScale="1.2"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="1201"
android:toXScale="-1.6"
android:toYScale="1.6" />
<scale
android:duration="1"
android:fromXScale="-1.6"
android:fromYScale="1.6"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="1600"
android:toXScale="1.6"
android:toYScale="1.6"/>
<scale
android:duration="399"
android:fromXScale="1.6"
android:fromYScale="1.6"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="1601"
android:toXScale="2"
android:toYScale="2" />
<scale
android:duration="1"
android:fromXScale="2"
android:fromYScale="2"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="2000"
android:toXScale="-2"
android:toYScale="2"/>
<scale
android:duration="399"
android:fromXScale="-2"
android:fromYScale="2"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="2001"
android:toXScale="-2.4"
android:toYScale="2.4" />
<!-- <scale -->
<!-- android:duration="1" -->
<!-- android:fromXScale="-2.4" -->
<!-- android:fromYScale="2.4" -->
<!-- android:pivotX="50%" -->
<!-- android:pivotY="50%" -->
<!-- android:startOffset="2400" -->
<!-- android:toXScale="2.4" -->
<!-- android:toYScale="2.4" /> -->
<!-- <scale -->
<!-- android:duration="399" -->
<!-- android:fromXScale="2.4" -->
<!-- android:fromYScale="2.4" -->
<!-- android:pivotX="50%" -->
<!-- android:pivotY="50%" -->
<!-- android:startOffset="2401" -->
<!-- android:toXScale="2.8" -->
<!-- android:toYScale="2.8" /> -->
<!-- <scale -->
<!-- android:duration="1" -->
<!-- android:fromXScale="2.8" -->
<!-- android:fromYScale="2.8" -->
<!-- android:pivotX="50%" -->
<!-- android:pivotY="50%" -->
<!-- android:startOffset="2800" -->
<!-- android:toXScale="-2.8" -->
<!-- android:toYScale="2.8" /> -->
<!-- <scale -->
<!-- android:duration="399" -->
<!-- android:fromXScale="-2.8" -->
<!-- android:fromYScale="2.8" -->
<!-- android:pivotX="50%" -->
<!-- android:pivotY="50%" -->
<!-- android:startOffset="2801" -->
<!-- android:toXScale="-3.2" -->
<!-- android:toYScale="3.2" /> -->
<alpha
android:duration="200"
android:fromAlpha="1"
android:startOffset="2400"
android:toAlpha="0" />
</set>