0

我试图在一个 AnimationSet 中放入两个 alpha 动画,如下所示,但是当我运行它时,会发生第一个(淡出)动画,但对于下一个动画它仍然是空白的。我知道我可以使用 arepeatMode="reverse"来做到这一点,但我想知道为什么这不起作用,以防我想做一些更花哨的事情。谢谢。

   <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
        <alpha
            android:duration="1000"
            android:fillAfter="false"
            android:fromAlpha="1.0"
            android:toAlpha="0.0" />
        <alpha
            android:duration="1000"
            android:fillBefore="false"
            android:fillEnabled="true"
            android:fromAlpha="0.0"
            android:startOffset="1000"
            android:toAlpha="1.0" />
    </set>
4

1 回答 1

1

我带着同样的想法来到这篇文章。我现在已经测试了这个。出乎意料的是它的工作完美。这是我的代码。

    <alpha
        android:duration="1000"
        android:fromAlpha="0.25"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:repeatMode="reverse"
        android:startOffset="500"
        android:toAlpha="1.0" />
    <alpha
        android:duration="1000"
        android:fromAlpha="1.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:repeatMode="reverse"
        android:startOffset="3500"
        android:toAlpha="0.25" />

The first one will set alpha to a higher value and its pulled low after some time using a second alpha. Make sure you add "repeatMode" as "reverse" , even though repeatcount is not set and no repeat happens. And the actual flow that happens is not reversing the first alpha , but switching to the second alpha for reverse operation .

于 2012-11-30T12:35:08.043 回答