6

フェード中に適用されたビューをビューの外に移動し、ビューの下に戻し、フェード中にビューに戻すこのアニメーションがあります。

問題は、フェードしないように見えることです。適用されたビューの不透明度は常に0.5です。

<?xml version="1.0" encoding="UTF-8" ?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:fromYDelta="0"
        android:toYDelta="-200"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:duration="1995"
        android:startOffset="3000" />
    <translate
        android:fromYDelta="200"
        android:toYDelta="0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:duration="1995"
        android:startOffset="8005" />   

    <alpha
        android:duration="500"
        android:fromAlpha="1.0"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:repeatMode="reverse"
        android:startOffset="3000"
        android:toAlpha="0.5" />
    <alpha
        android:duration="1995"
        android:fromAlpha="0.5"
        android:interpolator="@android:anim/accelerate_interpolator"
        android:repeatMode="reverse"
        android:startOffset="8005"
        android:toAlpha="1.0" />
</set>

セットでネストしたり、インターポレーターを削除したり、さまざまなことを試しました...唯一うまくいったのは、この SO question: android two alpha animationsで示されている例を使用することです。変換アニメーションと組み合わせてアルファ アニメーションを実行します。

ありがとう!

4

3 に答える 3

6

これは例です:

AnimationSet set = new AnimationSet(true);
Animation trAnimation = new TranslateAnimation(0, 500, 0, 0);
trAnimation.setDuration(6000);

trAnimation.setRepeatMode(Animation.REVERSE); // This will make the view translate in the reverse direction

set.addAnimation(trAnimation);
Animation anim = new AlphaAnimation(1.0f, 0.0f);
anim.setDuration(3000);
set.addAnimation(anim); 

txtView.startAnimation(set); // replace this with your view

これが役立つことを願っています!これを変更して、アルファを定義するレイアウト ベースのアニメーションを使用し、set タグの下でアニメーションを変換できます。

于 2013-10-04T16:53:23.787 に答える
3

これを試してみてください:::

<alpha
    android:duration="200"
    android:fromAlpha="1.0"
    android:repeatCount="1"
    android:repeatMode="reverse"
    android:toAlpha="0.0" />

<translate
    android:duration="200"
    android:fromXDelta="0"
    android:repeatCount="1"
    android:repeatMode="reverse"
    android:toXDelta="50" />

于 2014-08-26T04:17:03.100 に答える