Android 为什么我的动画集没有';执行不当?
问题 当我尝试使用这种先缩小后放大的动画设置TextView的动画时,它无法正确缩放。 我的文本视图将立即缩放到其大小的50%,然后,紧接着,动画将开始播放,当它完成时,文本视图的大小将约为其初始大小的50%,然后,它将返回到100% 这是动画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
<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,试试像正弦波一样的插值器我不知道如何定义插值器,我想了解为什么我的代码不工作,而不仅仅是尝试解决方法。原因是我刚刚尝试了另一个动画,所有的动画似乎都有这种行为。这不是任何解决办法,场景很难组合相同类型的平滑动画