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

本文介绍了一种自定义复杂动画实现Activity间跳转的方法。通过继承Animation类并重写关键方法,配合ActivityGroup使用,实现了从Activity01到Activity02的立方体翻转效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值