重复动画后给出延迟

5

我正在为我的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" />

Java代码如下:

Animation pulse = AnimationUtils.loadAnimation(this, R.anim.pulse);
reviewImage.startAnimation(pulse);

问题在于每次动画后都会有延迟,比如扩展+延迟+折叠+延迟。我只想在一个循环后给出延迟,也就是在扩展+折叠+延迟之后。

android:repeatMode="reverse" 这是反向动画。 - Manish
我明白了,现在注意到了。 - azizbekian
1个回答

5

您无法仅使用一种动画实现该效果,因为它执行动画并将下一个动画延迟2000毫秒(在xml中指定)。从框架的角度来看,这些动画没有相互关联,因此它不能将它们视为一个动画,而是两个单独的动画。

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

请参见此处如何使用AnimatorSet实现,但您也可以使用xml完成。

<set>

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

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

</set>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接