重复动画后给予延迟

Man*_*ish 5 animation android android-animation android-layout android-view

我正在向我的ImageView. 下面是我的动画代码:

<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="70%"
    android:pivotY="70%"
    android:repeatCount="infinite"
    android:startOffset="2000"
    android:repeatMode="reverse"
    android:toXScale="0.8"
    android:toYScale="0.8" />
Run Code Online (Sandbox Code Playgroud)

java代码是:

Animation pulse = AnimationUtils.loadAnimation(this, R.anim.pulse);
reviewImage.startAnimation(pulse);
Run Code Online (Sandbox Code Playgroud)

问题是它在每个动画之后都会产生延迟,例如展开+延迟+折叠+延迟,我只想在一个周期后才给出延迟意味着在展开+折叠+延迟之后

azi*_*ian 5

您无法通过一个动画来做到这一点,因为它的工作方式是执行动画并将下一个动画延迟 2000 毫秒(如 xml 中指定)。从框架的角度来看,这些动画彼此不相关,并且无法将它们评估为一个动画,因此它们是两个独立的动画。

您必须创建 2 个动画并按顺序播放它们。

请参阅此处如何使用AnimatorSets 执行此操作,但您也可以使用 执行此操作xml

<set>

    <scale 
        android:duration="500"
        .../>

    <scale
        android:startOffset="500"
        .../>

</set>
Run Code Online (Sandbox Code Playgroud)