我想按顺序运行下面显示的三个翻译动画.即,在一个翻译动画结束后,第二个翻译动画开始.但是,它们同时运行.
此外,此动画将用作overridePendingTransition()作为参数.所以,我必须解决这个问题,只能使用XML代码.
有谁知道我应该怎么做?
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fillAfter="true">
<translate
android:fromXDelta="100%p"
android:toXDelta="-20%p"
android:duration="1000" />
<translate
android:fromXDelta="-20%p"
android:toXDelta="20%p"
android:duration="1000" />
<translate
android:fromXDelta="20%p"
android:toXDelta="0"
android:duration="1000" />
</set>
Run Code Online (Sandbox Code Playgroud)
Kev*_*din 28
使用android:startOffset来延迟动画.
以您的示例,这应该做你想要的:
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fillAfter="true">
<translate
android:fromXDelta="100%p"
android:toXDelta="-20%p"
android:duration="1000" />
<translate
android:startOffset="1000"
android:fromXDelta="-20%p"
android:toXDelta="20%p"
android:duration="1000" />
<translate
android:startOffset="2000"
android:fromXDelta="20%p"
android:toXDelta="0"
android:duration="1000" />
</set>
Run Code Online (Sandbox Code Playgroud)
Com*_*are 17
凯文的解决方案可能有效,但我发现时机有点不准确.
另一种选择是使用一对AnimationListener对象,一对对应于前两个动画中的每一个.第一个动画的监听器onAnimationEnd()将启动第二个动画.第二个动画的监听器onAnimationEnd()将启动第三个动画.
| 归档时间: |
|
| 查看次数: |
18981 次 |
| 最近记录: |