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.

相关文章

###实现效果*本实例主要实现用ViewPage和Fragment实现选项卡...
一、安装 JDK 下载JDK最新版本,下载地址如下: http://www....
这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...