首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android上对相同的活动进行不同的动画过渡?

如何在Android上对相同的活动进行不同的动画过渡?
EN

Stack Overflow用户
提问于 2013-03-03 08:12:22
回答 1查看 1.3K关注 0票数 0

请参考下图:

https://lh4.googleusercontent.com/-gEW9RFcjpnQ/UTKSd0DSR5I/AAAAAAAAALs/P7i47evr2uY/s503/transitions.png

1-当应用程序启动时,通过活动显示启动画面

2-然后,执行转到主活动(初始屏幕活动结束)

3-用户通过点击按钮可以进入-1\f25 screen-1 \f6或-2\f25 screen-2 \f6活动。

3.1-执行此操作时,将保留(未完成)主活动,并创建所需的屏幕活动。

4-从screen-2或screen-2活动返回只需完成它们即可。然后,默认情况下,执行返回到主活动。

我想要的是:

1-图片上(A)的默认过渡动画。它意味着从Splash到Main Activity,从Main Activity到screen-1,以及screen-1完成时(返回到Main Activity时)的默认动画。

2-图片上(B)的特定过渡动画。它表示何时从主活动转到screen-2,以及screen-2结束时(返回到Main Activity时)。

就我在这里和互联网上的搜索而言,我从未发现如何实现这一点。

如何做到这一点?

我成功地从Main Activity->screen-1和Main Activity->screen-2获得了不同的动画,但我完全无法在screen-1->Main Activity和screen-2->Main Activity之间拥有不同的动画。

非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-03 10:31:33

您可以使用以下代码启动屏幕2的活动:

代码语言:javascript
复制
startActivityForResult(intent4Screen2, RESULT_ANIMATION);
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);

在onActivityResult()中放入:

代码语言:javascript
复制
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case RESULT_ANIMATION:
            overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
            break;
    }
}

RESULT_ANIMATION是一个常量,zoom_enter和zoom_exit是你的动画,如下所示:

代码语言:javascript
复制
<set xmlns:android="http://schemas.android.com/apk/res/android"
      android:interpolator="@android:anim/decelerate_interpolator">
    <alpha
        android:interpolator="@android:anim/accelerate_interpolator"
        android:fromAlpha="0.0" android:toAlpha="1.0"
        android:duration="@android:integer/config_mediumAnimTime" />
</set>

如果你需要支持Android <2.0,它不支持overridePendingTransition()方法,你需要使用反射。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15180970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档