所以我有这个缩放动画,它应该做的是缩放视图,以全高度的70%,然后再缩放回原来的大小的东西。 我有不同的startOffsets两个标度的动画。
我与此遇到的问题是动画前视图比例甚至开始。 所以当动画开始,他们与已经缩短缩放视图中工作。
这里是我的动画XML:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:interpolator="@android:anim/linear_interpolator" >
<scale
android:duration="300"
android:fillAfter="true"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:startOffset="200"
android:toXScale="1.0"
android:toYScale="0.7"
/>
<scale
android:duration="300"
android:fillAfter="true"
android:fromXScale="1.0"
android:fromYScale="0.7"
android:startOffset="1000"
android:toXScale="1.0"
android:toYScale="1.0"
/>
</set>
这里是我如何把这个动画:
mScaleTop = AnimationUtils.loadAnimation(this, R.anim.scale_top);
mTopView.startAnimation(mScaleTop);
有任何想法吗? 谢谢阅读。
取决于评论@pskink通知
如果你的动画有一个周期模式下,只能设置android:interpolator
属性@android:anim/cycle_interpolator"
这样你就可以只使用第一阶段 ,然后将返回原单状态...
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:fillAfter="true"
android:interpolator="@android:anim/cycle_interpolator" >
<scale
android:duration="300"
android:fillAfter="true"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:startOffset="200"
android:toXScale="1.0"
android:toYScale="0.7" />
</set>
否则 ,如果你想使用linear_interpolator
你必须从规模也高度1.0
,而不是从0.7
因为1.0
指示当前状态
android:fromYScale="1.0"
意味着100%
的当前状态和原单的状态= 70%...
所以你必须标高android:fromYScale="1.0"
到android:fromXScale="1.42"
因为: android:fromYScale="1.0"
= 70%从原大小必须添加的70 42%至等于全原单高度的100%....
<?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:duration="300"
android:fillAfter="true"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:startOffset="200"
android:toXScale="1.0"
android:toYScale="0.7"
/>
<scale
android:duration="300"
android:fillAfter="true"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:startOffset="1000"
android:toXScale="1.0"
android:toYScale="1.42"
/>
</set>