Android Alpha /翻译动画

时间:2013-10-04 14:46:30

标签: android android-animation

我有这个动画应该将应用的视图移动到视图中,同时褪色,将其移回视图下方,然后在褪色时返回视图。

问题是它似乎没有消失 - 应用视图的不透明度总是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问题中给出的例子:android two alpha animations这让我相信它是与翻译动画结合使用时运行alpha动画。

谢谢!

3 个答案:

答案 0 :(得分:5)

这是一个例子:

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

I hope this helps! You can change this and use the a layout based animation defining the alpha and translate animations under the set tag.

答案 1 :(得分:2)

你应该试试这个:::

<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" />

答案 2 :(得分:0)

你不需要使用两个tranlate / alpha动画来获得你想要的东西,只需使用自定义插值器

编辑:请参阅我昨天的答案Fade out animation works but opposite fade in animation does not