0

次のように、1つのAnimationSetに2つのアルファアニメーションを入れようとしていますが、実行すると、最初の(フェードアウト)アニメーションが発生しますが、次のアニメーションでは空白のままになります。を使用してこれを実行できることは理解してrepeatMode="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" />

最初のものはアルファをより高い値に設定し、2 番目のアルファを使用してしばらくすると低くなります。repeatcount が設定されておらず、繰り返しが発生しない場合でも、必ず "repeatMode" を "reverse" として追加してください。そして実際に起こる流れは、最初のアルファを逆にするのではなく、逆の操作のために 2 番目のアルファに切り替えることです。

于 2012-11-30T12:35:08.043 に答える