我有一个带有滑动画面的活动,它作为菜单出现。当活动开始时,按钮就在那里并淡出以允许全屏视图。当单击抽屉顶部的按钮(此时它的alpha为0)时,它应该淡入并弹出菜单。再次单击时,菜单会折叠,按钮会退出。要做到这一点,我在活动中有以下代码。
初始淡出按预期工作。活动已创建,按钮淡出。当我单击按钮以展开菜单时,按钮不会出现,当我再次单击它时,按钮就在那里并且不会淡出。奇怪的是,动画实际上是被调用的,如果我在调用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);
}
答案 0 :(得分:0)
你实现了AnimationListener吗?
您可以使用 onAnimationEnd()。在那里,您可以放置另一个将触发另一个alpha动画的侦听器,让您的按钮在关闭抽屉时淡出。
我从动画制作中了解到,如果你有多个动画,你应该总是实现AnimationListener,因为android无法自行决定如何处理它们。
在Android开发者上查看此文档: