Android链接动画

前端之家收集整理的这篇文章主要介绍了Android链接动画前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在试图将两个动画“链接”在一起,所以当一个完成,另一个开始.这是正常工作,除了一个问题.第一个动画完成后,它回到原来的位置.我正在设置填充到真.我还缺少什么?

这是我正在使用的代码.注意,这是一个扩展LinearLayout的类.

// FIRST ANIMATION
mAnimation = new TranslateAnimation(0,PANEL_END_X,0);
mAnimation.setDuration(PANEL_TRANSITION_TIME);
mAnimation.setFillAfter(true);

mAnimation.setAnimationListener(new Animation.AnimationListener() {
    public void onAnimationEnd(Animation animation) {

        // FIRST ANIMATION COMPLETE,CALL THE SECOND ANIMATION
        startAnimation(mAlphaAnimation);
    }
});

// SECOND ANIMATION     
mAlphaAnimation = new AlphaAnimation(1.0f,0.0f);
mAlphaAnimation.setDuration(PANEL_ALPHA_TRANSITION_TIME);
mAlphaAnimation.setFillAfter(true);

解:

我可以让我满意的唯一方法是使用AnimationSet,但设置第二个动画的起始偏移量,以启动第一个动画的偏移持续时间,加上一点点填充.在我的情况下,他们并不完全准确.

我尝试使用CommonsWare建议的各种值,但是我总是会获得某种类型的“捕捉”效果,其中值将在使用新值之前恢复为原始值.

解决方法

After the first animation is complete,it moves back to it’s original position. I am setting fill after to true. What else am I missing?

动画是瞬态效应.如果你想要的效果是永久的,你必须在onAnimationEnd()中自己做.在TranslateAnimation的情况下,您需要更改LayoutParams或受影响的部件的某些东西,以将其永久保持在其最终位置.或者,如果您将其从屏幕上翻译,请将可见性设置为View.GONE.

猜你在找的Android相关文章