从下到上显示活动

Nik*_*hil 46 animation android android-intent android-activity

我希望activity使用从下到上的动画显示一个到另一个Intent.

给我一些例子如下

Intent i2 = new Intent(main.this, test.class);
startActivity(i2);
Run Code Online (Sandbox Code Playgroud)

动画从下到上.

Mar*_*son 134

在res/anim/slide_in_up.xml中定义动画:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromYDelta="100%p" android:toYDelta="0%p"
    android:duration="@android:integer/config_longAnimTime"/>
Run Code Online (Sandbox Code Playgroud)

另一个在res/anim/slide_out_up.xml:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromYDelta="0%p" android:toYDelta="-100%p"
    android:duration="@android:integer/config_longAnimTime"/>
Run Code Online (Sandbox Code Playgroud)

然后应用这些来调用startActivity:

Intent i2 = new Intent(main.this, test.class);
startActivity(i2);
overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up );
Run Code Online (Sandbox Code Playgroud)

这里介绍的Android动画这里它可以帮助你进一步.


Akl*_*ngh 10

当我用谷歌搜索滑动过渡并降落到这里时,但马克的答案是不完整的,没有涉及回到相同活动的过渡。

在活动中覆盖完成

@Override
public void finish() {
    super.finish();
    overridePendingTransition(R.anim.slide_from_top,R.anim.slide_in_top);
}
Run Code Online (Sandbox Code Playgroud)

结束()

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                finishAfterTransition();
            }else finish();
Run Code Online (Sandbox Code Playgroud)

slide_from_top.xml

<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="-100%p" android:toYDelta="0%p"
android:duration="@android:integer/config_shortAnimTime"/>
Run Code Online (Sandbox Code Playgroud)

slide_in_top.xml

<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0%p" android:toYDelta="100%p"
android:duration="@android:integer/config_shortAnimTime"/>
Run Code Online (Sandbox Code Playgroud)