微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐