问题
当我尝试使用此缩小然后放大动画为TextView设置动画时,它无法正确缩放。 我的TextView将立即缩放到50%的大小,然后,在此之后,动画将开始播放,当它完成时,TextView的大小将约为其初始大小的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>
我尝试了什么
我试着查看SetAnimation和ScaleAnimation的文档,但没有发现任何有用的东西来解决我的问题。
我尝试改变一些值,我将在这里描述它是如何影响动画的。 我将谈论大小如2.0和0.6,而不是夫妻,因为在我的实验中,我总是将XScale等于fromsccale和toXScale等于tosccale。所以,
如果我从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 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
?
为什么我的代码无效?