我正在尝试使用Android下的TextView连续执行2个文本动画
第一
TextView target = (TextView)findViewById(R.id.textanimation);
target.setText(text1);
target.startAnimation(animationSet1);
animationSet1是一组alpha和翻译动画:
Animation alpha = new AlphaAnimation(0.0f, 1.0f);
Animation a = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 0,
Animation.RELATIVE_TO_SELF, -1.0f,
Animation.RELATIVE_TO_SELF, 0);
alpha.setDuration( 1000 );
a.setDuration( 1000 );
当在动画集1中发生onAnimationEnd时,我立即启动另一个动画
TextView target = (TextView)findViewById(R.id.textanimation);
target.setText(text2);
target.startAnimation(animationSet1);
然而,在第二个动画中,我可以看到第二个完全不透明的文本,但它应该从0 alpha开始。如何避免这种情况?会回答任何答案。
P.S。即使我有两个单独的文本视图与两者中的准备文本 - 看到相同的错误。
如果我在动画之间加了一些延迟,它们会变得平滑。
答案 0 :(得分:0)
我不确定在第一个动画结束后你是如何触发第二个动画的开始的。我猜测你正在检查视图上的动画是否为空。这不是最好或最正确的方法。相反,你应该AnimationListener
Animation animation1 = new Animation();//Replace with your animation
animation1.setDuration(DURATION_1);
animation1.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation arg0) {}
public void onAnimationRepeat(Animation arg0) {}
public void onAnimationEnd(Animation arg0) {
Animation animation2 = new Animation();
animation2.setDuration(DURATION_2);
view2.startAnimation(animation2);
}
});
view1.startAnimation(animation1);