【问题标题】:android activity open with swap motionandroid活动以交换动作打开
【发布时间】:2018-12-20 19:58:55
【问题描述】:

我可以使用交换动作而不是默认动作来打开一个 android 活动吗? 默认情况下,当我从另一个 Activity 调用一个 Activity 时,新的 Activity 会从中间打开,并且会增长到与屏幕尺寸相匹配,我希望我的应用程序中的 Activity 从侧面打开并覆盖它们之前的 Activity。

有可能吗?

【问题讨论】:

    标签: java android


    【解决方案1】:

    是的,你可以通过自定义动画来做到这一点,就像我在这里所做的那样:

    将activity_push_up_in.xml 放入你的动画文件夹:-

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <translate
            android:duration="500"
            android:fromYDelta="100%p"
            android:toYDelta="0" />
    
    
    
    </set>
    

    现在,将另一个 xml push_up_out.xml 再次放入您的 anim 文件夹中:-

    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <translate
            android:duration="500"
            android:fromYDelta="0"
            android:toYDelta="-100%p" />
    
    
    </set>
    

    现在将此代码放入您的 java 文件中以使用此动画开始活动:-

    overridePendingTransition(R.anim.activity_push_up_in, R.anim.push_up_out);
    

    【讨论】:

      【解决方案2】:

      简短回答:是的,有可能

      在 API 级别 5 中,您可以调用 overridePendingTransition 方法指定显式过渡动画。

      startActivity();
      overridePendingTransition(R.anim.hold, R.anim.some_animation);
      

      您当然需要创建您希望在动画 xml 中使用的动画。

      【讨论】:

        【解决方案3】:

        使用这个

        overridePendingTransition(0, android.R.anim.slide_out_right);
        

        【讨论】:

          【解决方案4】:

          您需要使用动画并在启动新 Activity 时覆盖当前动画。 看看这个答案Slide right to left Android Animations

          【讨论】:

            【解决方案5】:

            就像我做的那样:

            put activity_push_up_in.xml in your anim folder :-
            
            <?xml version="1.0" encoding="utf-8"?>
            <set xmlns:android="http://schemas.android.com/apk/res/android" >
            
                <translate
                    android:duration="200"
                    android:fromYDelta="100%p"
                    android:toYDelta="0" />
            
            
            
            </set>
            now, put another xml push_up_out.xml again in your anim folder :-
            
            <set xmlns:android="http://schemas.android.com/apk/res/android" >
            
                <translate
                    android:duration="200"
                    android:fromYDelta="0"
                    android:toYDelta="-100%p" />
            
            
            </set>
            Now put this code in your java file to start intent activity with this animation :-
            
            overridePendingTransition(R.anim.activity_push_up_in, R.anim.push_up_out);
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-05-30
              • 1970-01-01
              • 1970-01-01
              • 2017-01-08
              • 1970-01-01
              • 1970-01-01
              • 2015-05-17
              相关资源
              最近更新 更多