繁体   English   中英

Android Alpha动画不会在动画过程中重新绘制

[英]Android alpha animation not repainting during the animation

我有一个带有滑动菜单的活动,它作为菜单出现。 活动开始时,按钮在那里并淡出以允许全屏显示。 单击抽屉顶部的按钮时(此时Alpha为0),它应淡入并弹出菜单。 再次单击该菜单将折叠,该按钮将逐渐淡出。 为此,我在活动中具有以下代码。

初始淡出效果如预期的那样。 活动已创建,按钮淡出。 当我单击该按钮以展开菜单时,该按钮不出现,而当我再次单击它时,该按钮在那里并且不会淡出。 奇怪的是,实际上是调用了动画,并且如果我将scrollviews移动到抽屉后面,而在调用animatin之后的动画,则只要我保持其背景中的视图运动,动画就可以正常进行。 如果我停止移动这些视图,动画将冻结为某些alpha值。

为什么第一个功能正常,而其他功能不正常? 我该如何解决?

drawer = (SlidingDrawer) this.findViewById(R.id.slidingDrawer1);
    drawer.setOnDrawerCloseListener(new OnDrawerCloseListener(){

        public void onDrawerClosed() {
            doFadeOut();
        }       
    });
    drawer.setOnDrawerOpenListener(new OnDrawerOpenListener(){

        public void onDrawerOpened() {
            doFadeIn();             
        }           
    });


fadeOut = AnimationUtils.loadAnimation(this, R.anim.buttonfadeout);
    fadeOut.setFillAfter(true);
    fadeIn = AnimationUtils.loadAnimation(this, R.anim.buttonfadein);
    fadeIn.setFillAfter(true);
    doFadeOut(); //this is the end of onCreate and fades when the activity is created

这些是活动中的方法

public void doFadeOut(){
    fadeOut.reset();
    menuButton.clearAnimation();
    menuButton.startAnimation(fadeOut);
}

public void doFadeIn(){
    fadeIn.reset();
    menuButton.clearAnimation();
    menuButton.startAnimation(fadeIn);
}

您实现了AnimationListener吗?

您可以使用onAnimationEnd() 您可以在此处放置另一个侦听器,该侦听器将触发另一个Alpha动画,以便您在关闭抽屉时淡出按钮。

我从动画的工作中学到,如果您有多个动画,则应该始终实现AnimationListener,因为android无法自行决定如何处理许多动画。

在Android Developers上查看以下文档:

动画侦听器文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM