切换 Activity 时如何在各个 View 上触发动画? IE。如果用户单击一个按钮转到下一页,我希望我的一些 View 飞出屏幕,并将背景淡入淡出到下一个屏幕,而不是将整个屏幕作为一个整体进行动画处理。
这可能吗?如果是这样,应该怎么做? (我使用的是最新的 API 4.1,它不必向后兼容)
编辑:目前,通过在 onResume() 中调用过渡动画可以正常工作,但是当我按回键时, Activity 切换的速度比在 onPause() 中启动的任何动画都快,所以我认为还有更好的方法这样做的方式/地点。
最佳答案
Overriding onResume() works fine, but onPause/onStop don't wait for the animation to complete before moving to the next screen.
事件开始的原因是什么。单击按钮需要在调用启动 Activity 之前启动动画。
button.setOnClickListener(new ViewOnClickListener() {
@Override
void onClick(... {
// start animations
// wait till they are finished
// start activity
}
});
由于启动新 Activity 的每个事件都将包含动画代码,因此我还建议将其移至某种辅助类中,以避免到处都是重复代码。例如。
button1.setOnClickListener(new ViewOnClickListener() {
@Override
void onClick(... {
helper.AnimateViews(/* probably pass activity or context */);
// start activity
}
});
button2.setOnClickListener(new ViewOnClickListener() {
@Override
void onClick(... {
helper.animateViews(/* probably pass activity or context */);
// start activity
}
});
public class ViewAnimiationHelper {
public void animateViews(Activity activity) {
// find all views if not found then don't animate them
View view1 = activity.findViewById(R.id.view1);
if(view1 != null) {
// animate view
}
View view2 = activity.findViewById(R.id.view1);
if(view2 != null) {
// animate view
}
}
}
这都是 sudo java 代码,但希望足以让您理解。祝你好运!
关于android - 如何为 Activity 转换的个人 View 设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11941728/