Activity 之间实现自定义动画跳转

来源:互联网 发布:电脑网络电话软件 编辑:程序博客网 时间:2024/05/17 13:11

在 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 跳转动画的思路,并非实际编码,已实验通过,望有哪位路过高手能给出一套新的解决方案给与参考。。。