Android Alpha/Translate动画

7
我有一个动画,应该将所应用的视图向上移出视图并淡出,然后将其移回视图下面,再淡入视图。但问题在于,它似乎没有淡出 - 所应用的视图的不透明度始终为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 动画时与 translate 动画组合有关。
感谢!
3个回答

7
这是一个例子:

这是一个示例:

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

希望这能帮到你!你可以更改这个并使用基于布局的动画,定义alpha和translate动画在set标签下。


我应该提到我也尝试过用C#(它是MonoDroid)来做这件事 - 结果完全相同。 - Jamie

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


1

那是我从SO问题中复制下来的东西,为了让它工作(或者不工作)。我会看一下自定义插值器。 - Jamie
请提供需要翻译的英文文本。 - pskink
еңЁxmlдёӯж·»еҠ fillEnabled / fillAfter / fillBeforeеұһжҖ§и§ЈеҶідәҶиҝҷдёӘй—®йўҳ :) - Jamie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接