【发布时间】:2011-10-11 09:18:37
【问题描述】:
我想要一个 ImageView 的 2 秒动画,它花费 1000 毫秒淡入然后 1000 毫秒淡出。
这是我的 ImageView 构造函数中的内容:
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setDuration(1000);
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setStartOffset(1000);
fadeOut.setDuration(1000);
AnimationSet animation = new AnimationSet(true);
animation.addAnimation(fadeIn);
animation.addAnimation(fadeOut);
this.setAnimation(animation);
当我运行那个动画时,什么都没有出现。但是,当我删除其中一个 alpha 动画时,行为会按预期工作。
我已经尝试过的事情:
-
setFillBefore、setFillAfter和setFillEnabled的所有可能组合。 - 将
LinearInterpolator添加到AnimationSet。
【问题讨论】:
-
是的,您可以淡入淡出图像!本教程应该可以解决问题。 sankarganesh-info-exchange.blogspot.com/2011/04/…
-
该教程描述了一种使用 XML 的方法。你知道如何使用 Java 实现同样的目标吗?
-
好吧,我不在我的编程计算机旁边,所以我无法测试这段代码,但你可以在 java 中设置 xml 属性。这是原始代码: android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" /> \n 所以你可能可以 MyTween.setDurationg (300) MyTween.fromAlpha(0.0) MyTween(1.0)