Android 为什么我的动画集没有';执行不当?

Android 为什么我的动画集没有';执行不当?,android,android-layout,android-animation,Android,Android Layout,Android Animation,问题 当我尝试使用这种先缩小后放大的动画设置TextView的动画时,它无法正确缩放。 我的文本视图将立即缩放到其大小的50%,然后,紧接着,动画将开始播放,当它完成时,文本视图的大小将约为其初始大小的50%,然后,它将返回到100% 这是动画 <set xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Zoom Out --> <scale andro

问题

当我尝试使用这种先缩小后放大的动画设置TextView的动画时,它无法正确缩放。 我的文本视图将立即缩放到其大小的50%,然后,紧接着,动画将开始播放,当它完成时,文本视图的大小将约为其初始大小的50%,然后,它将返回到100%

这是动画

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Zoom Out -->
    <scale
        android:duration="750"
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0.6"
        android:toYScale="0.6">
    </scale>

    <!-- Zoom In -->
    <scale
        android:duration="750"
        android:startOffset="750"
        android:fromXScale="0.6"
        android:fromYScale="0.6"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1"
        android:toYScale="1">
    </scale>
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Zoom In -->
    <scale
        android:duration="750"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.5"
        android:toYScale="1.5">
    </scale>

    <!-- Zoom Out -->
    <scale
        android:duration="750"
        android:startOffset="750"
        android:fromXScale="1.5"
        android:fromYScale="1.5"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0">
    </scale>
</set>


我尝试的

我试图查看SetAnimation和ScaleAnimation的文档,但没有找到任何有用的方法来解决我的问题

我试着改变一些值,我将在这里描述它是如何影响动画的。 我将讨论2.0和0.6这样的尺寸,而不是夫妇,因为在我的实验中,我总是将fromXScale设置为fromYScale等于fromYScale,toXScale等于toYScale。所以

如果从2.0到0.6,然后从0.6到2.0,动画将正确执行(它将从文本视图2x的实际大小开始,并返回到实际大小) 如果从2.0转到1.0,然后从1.0转到2.0,动画将从2.0开始。。转到1.0并返回到2.0。。之后,TextView将立即恢复到其原始大小

编辑

我只是试着做另一件事。我做了与下面动画相反的事情,放大然后缩小动画

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Zoom Out -->
    <scale
        android:duration="750"
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="0.6"
        android:toYScale="0.6">
    </scale>

    <!-- Zoom In -->
    <scale
        android:duration="750"
        android:startOffset="750"
        android:fromXScale="0.6"
        android:fromYScale="0.6"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1"
        android:toYScale="1">
    </scale>
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Zoom In -->
    <scale
        android:duration="750"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.5"
        android:toYScale="1.5">
    </scale>

    <!-- Zoom Out -->
    <scale
        android:duration="750"
        android:startOffset="750"
        android:fromXScale="1.5"
        android:fromYScale="1.5"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toXScale="1.0"
        android:toYScale="1.0">
    </scale>
</set>

而行为发生了,只是这次相反:视图在动画执行时立即放大,并立即缩小到原始状态


问题

如何使用值
fromXScale=1.0-->toXScale=0.6-->toXScale=1.0
fromYScale=1.0-->toYScale=0.6-->toYScale=1
正确执行动画


为什么我的代码不起作用?

使用一个比例动画加上自定义插值器,该插值器从0开始,中间值为1,最后值为0(某种形式的sin函数)。你能给我看些别的吗?我知道插值器用于修改动画的执行速度。你是在暗示他们也可以反转视图吗?sute,试试像正弦波一样的插值器我不知道如何定义插值器,我想了解为什么我的代码不工作,而不仅仅是尝试解决方法。原因是我刚刚尝试了另一个动画,所有的动画似乎都有这种行为。这不是任何解决办法,场景很难组合相同类型的平滑动画