【问题标题】:Give a delay after repeat animation重复动画后延迟
【发布时间】:2017-04-12 14:11:50
【问题描述】:

我正在向我的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" 这是反向动画
  • 我明白了,现在注意到了。

标签: android android-layout animation android-animation android-view


【解决方案1】:

你不能用一个动画来做到这一点,因为它的工作方式是它执行动画并将下一个动画延迟 2000 毫秒(如 xml 中指定的那样)。从框架的角度来看,这些动画没有相互关联,并且不能将它们评估为一个动画,因此它们是两个独立的动画。

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

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

<set>

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

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

</set>

【讨论】:

    猜你喜欢
    • 2017-12-04
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-15
    • 2015-10-19
    • 2019-05-31
    相关资源
    最近更新 更多