我目前正在制作Android启动画面动画。 Google的documentation for animation resources指出<set>
具有属性android:ordering
,该属性“指定该组动画的播放顺序” 。有两个(不言自明的)选项:
sequentially
together
(默认)下面的animation.xml显示了一个小的实现,但是它的执行方式与我预期的不同。尽管我为它们的父级定义了android:ordering="sequentially"
,但是所有嵌套集都同时执行。我希望只有每个嵌套集的内容才能显示为相似。父集的排序属性不会影响嵌套集吗?
我知道this answer中提出的解决方案,但是我看不出我对动画顺序执行的定义不能同样有效的原因。
animation.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:ordering="sequentially">
<set>
<alpha
android:duration="400"
android:fromAlpha="0"
android:interpolator="@anim/interpolator"
android:toAlpha="0.4" />
<scale
android:duration="400"
android:fromXScale="0"
android:fromYScale="0"
android:interpolator="@anim/interpolator"
android:pivotX="30%"
android:pivotY="50%"
android:toXScale="0.4"
android:toYScale="0.4" />
</set>
<set>
<alpha
android:duration="200"
android:fromAlpha="0.4"
android:toAlpha="0.3" />
<scale
android:duration="200"
android:fromXScale="0.4"
android:fromYScale="0.4"
android:pivotX="30%"
android:pivotY="50%"
android:toXScale="0.3"
android:toYScale="0.3" />
</set>
</set>
答案 0 :(得分:1)
视图动画集上没有ordering
属性。
我认为您在混淆property animation(定义为res/animator/...
资源)和view animation(在res/anim/...
中)。
两者都可以具有<set>
元素,但是语法不同。对于属性动画,它是:
<set
android:ordering=["together" | "sequentially"]>
...
并创建一个AnimatorSet
观看动画时,它是:
<set
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
...
这将创建一个AnimationSet