【问题标题】:How to launch an android app(not an activity) from the bottom of the screen to top?如何从屏幕底部到顶部启动 android 应用程序(不是活动)?
【发布时间】:2016-05-28 13:11:09
【问题描述】:

我用过 overridePendingTransition()already 但它用于打开具有给定转换的活动而不是应用程序。

此外,它仅在您打算单击按钮时才有效,如果在 onCreate() 中使用 overridePendingTransition() 则无效

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        Intent i = new Intent(Main2Activity.this,MainActivity.class);
        startActivity(i);
        overridePendingTransition(R.anim.slide_in_up,R.anim.slide_out_up);
    }

【问题讨论】:

    标签: java android transition overridependingtransition


    【解决方案1】:

    在 setContentView 之前使用以下代码:

    overridePendingTransition(R.anim.slide_in_from_bottom, R.anim.fade_out);
    

    并在您的完成()中使用以下代码:

    @Override
        public void finish() {
            super.finish();
            overridePendingTransition(R.anim.fade_in, R.anim.slide_out_back_to_bottom);
        }
    

    并创建动画文件夹并放置这些文件:

    slide_in_from_bottom:

    <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:zAdjustment="top">
        <translate
                android:duration="400"
                android:fromYDelta="100%p"
                android:toYDelta="0%p"
                >
        </translate>
        <alpha
                android:fromAlpha="0.8"
                android:toAlpha="1.0"
                android:duration="400"
                />
    </set>
    

    slide_out_back_to_bottom:

     <set xmlns:android="http://schemas.android.com/apk/res/android"
             android:zAdjustment="top">
            <translate
                    android:duration="400"
                    android:fromYDelta="0%p"
                    android:toYDelta="100%p"
                    >
            </translate>
            <alpha
                    android:fromAlpha="1.0"
                    android:toAlpha="0.8"
                    android:duration="400"
                    />
        </set>
    

    淡入:

    <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:zAdjustment="bottom">
        <alpha
                android:fromAlpha="0.0"
                android:toAlpha="1.0"
                android:duration="300"
                />
    </set>
    

    淡出:

    <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:zAdjustment="bottom">
        <alpha
                android:fromAlpha="1.0"
                android:toAlpha="0.0"
                android:duration="200"
                />
    </set>
    

    完整的实现可以在here找到。

    【讨论】:

    • 你确定它可以从下到上启动安卓应用吗?
    • 是的!我也在我的一个项目中使用它。同样如您所见,我正在使用从 0% 到 100% 的转换,这正是您想要的。我也有点fade_in/fade_out 更好。
    • 是否正确 :( 如果不是,您可以在驱动器或任何地方分享您的 apk
    • public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up); setContentView(R.layout.activity_main); } @Override public void finish() { super.finish(); overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up); } }
    • 我浪费了 5 个小时来寻找解决方案,但应用程序没有从底部启动,请帮助
    猜你喜欢
    • 2016-12-01
    • 1970-01-01
    • 2011-02-11
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2011-11-08
    • 1970-01-01
    相关资源
    最近更新 更多