在 Activity 之间实现简单动画跳转功能,可以参看 ApiDemo ---> App ---> Activity ---> Animation 例子,这个例子已经很详细地阐述了如何实现动画跳转功能, 即覆写方法
@Override
public void overridePendingTransition(int enterAnim, int exitAnim) {
// TODO Auto-generated method stub
super.overridePendingTransition(enterAnim, exitAnim);
}
enterAnim 指的是进入下一屏做的动画,exitAnim 指的是退出当前屏做的动画,不过这种方式展现的动画均是基于 xml形式实现的 ,但在开发过程中也许需要自定义复杂的动画来跳转,而复杂的动画想要基于 xml 来实现,本人觉得非常艰难,至少目前还没有这样深厚的功力来编写。。。
那么要想在 Activity 之间实现稍微复杂的动画跳转,该如何做呢?正好既于项目需要,本人研究了一下,现把它写下来,以供参考。
首先,我自定义了一个CubeAnimation extends Animation ,覆写了下面两个方法,方法用法略述。
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
}
我的目的是想在 Activity01 跳转到 Activity02 时,插入 CubeAnimation , 显现想利用官方的例子来解决这个问题肯定是不可行的,换种思路因为我们知道执行 CubeAnimation 的方法是通过 View.startAnimation(CubeAnimation) 来调用的, 所以我们应该要把 Activity01 和 Activity02 变成 View01 和 View 02 就可以啦,在这里我又定义了一个Group extends ActivityGroup,然后通过调用方法
View view =getLocalActivityManager().startActivity(class.getSimpleName(), i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
.getDecorView();
获得 Activity01 的 View01 和 Activity02 的 View02, 然后分别调用View01.startAnimation(CubeAnimation),View01.startAnimation(CubeAnimation) 就OK啦。。。
以上仅是个人实现 Activity 跳转动画的思路,并非实际编码,已实验通过,望有哪位路过高手能给出一套新的解决方案给与参考。。。