[英]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.