android textview动画不流畅

时间:2011-12-15 19:47:08

标签: android animation android-layout textview

我正在尝试使用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。即使我有两个单独的文本视图与两者中的准备文本 - 看到相同的错误。

如果我在动画之间加了一些延迟,它们会变得平滑。

  • 塞吉

1 个答案:

答案 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);