嵌套集的顺序动画
Sequential animation of nested sets
我目前正在制作 Android 闪屏动画。 Google 的 documentation for animation resources 声明 <set>
具有属性 android:ordering
,即 "specifies the play ordering of animations in this set"。有两个(不言自明的)选项:
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>
查看动画集上没有ordering
属性。
我认为你在混淆 property animation (defined as res/animator/...
resources) and view animation(在 res/anim/...
中)。
两者都可以有一个 <set>
元素,但语法不同。对于 属性 动画,它是:
<set
android:ordering=["together" | "sequentially"]>
...
并创建一个 AnimatorSet
而对于 观看动画,它是:
<set
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
...
这会创建一个 AnimationSet
我目前正在制作 Android 闪屏动画。 Google 的 documentation for animation resources 声明 <set>
具有属性 android:ordering
,即 "specifies the play ordering of animations in this set"。有两个(不言自明的)选项:
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>
查看动画集上没有ordering
属性。
我认为你在混淆 property animation (defined as res/animator/...
resources) and view animation(在 res/anim/...
中)。
两者都可以有一个 <set>
元素,但语法不同。对于 属性 动画,它是:
<set
android:ordering=["together" | "sequentially"]>
...
并创建一个 AnimatorSet
而对于 观看动画,它是:
<set
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
...
这会创建一个 AnimationSet