使用补间动画水平翻转图像。没有3D

时间:2016-03-29 10:28:38

标签: android xml animation flip tween

如何在Android中使用补间动画水平翻转图像?我不想要3D效果。我只需要镜像图像。

2 个答案:

答案 0 :(得分:0)

我认为scaleX或scaleY的负值会导致镜像。如果是你的情况,你可以将比例从1调整为-1。这是你需要的吗?

答案 1 :(得分:0)

是的,你是对的。它可以这样做,但我有一些麻烦交替积极和消极的价值观。看看这个:

<?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>

这应生成一个增长和翻转的图像......但它不起作用。它只显示有时会增长的图像......但是没有镜像图像!

我做错了什么?

EDITED ----

最后,我找到了一种方法让它发挥作用。我翻转并调整大小两部分。但我无法添加更多调整大小,因为它不会显示任何内容...尝试取消注释注释块并告诉我为什么它以这种方式工作...

<?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>