如何定义翻转动画

4

我想在点击ImageView后制作像翻转一样的动画。我的意图是将图像的宽度缩小到0,然后立即将其展开到1.0。这应该模拟图片的翻转。

这就是我实际拥有的。点击图像后,它会将图像从1.0缩小到0。

我的问题是如何继续扩展动画的部分?

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
    <scale
            android:interpolator="@android:anim/linear_interpolator"
            android:fromXScale="1.0"
            android:toXScale="0.0"
            android:fromYScale="1.0"
            android:toYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="200" />
 </set>

编辑

我添加了另一个用于动画反向部分的块,但它并没有按预期工作。似乎起始偏移量没有生效或者说类似于这样的情况。换句话说,动画混乱了,看起来第一部分动画也受到了这个额外代码的影响。我到底做错了什么?

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
    <scale
            android:interpolator="@android:anim/linear_interpolator"
            android:fromXScale="1.0"
            android:toXScale="0.0"
            android:fromYScale="1.0"
            android:toYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="200" />
    <set android:startOffset="200">
        <scale
            android:interpolator="@android:anim/linear_interpolator"
            android:fromXScale="0.0"
            android:toXScale="1.0"
            android:fromYScale="1.0"
            android:toYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="200" />
    </set>
 </set>
2个回答

1

经过下一轮的研发,我发现这段代码正好做我想要的事情。

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

    <scale
            android:fromXScale="1.0"
            android:toXScale="0.0"
            android:fromYScale="1.0"
            android:toYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="200"
            android:repeatCount="2"
            android:repeatMode="reverse"/>

    </set>

这意味着我在动画定义中添加了repeatModerepeatCount,并且它们按照我的预期工作。


1

我添加了动画的第二部分(请参考原帖的EDIT部分),但它并没有按预期工作。我希望在第一部分动画完成(即第一次缩放)之后,第二个部分就会开始。但事实并非如此。整个动画非常奇怪,似乎第一部分也受到了这个额外代码的影响。我希望第一次缩放能够像以前那样工作。与此同时,第二部分等待200毫秒,然后开始。 - gordonfreeman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接