关于运行新应用程序的Android动画

CBe*_*4ok 6 android android-animation android-launcher

我正在为自己创造新的发射器.现在,当我从我的主要活动中运行应用程序时,它有这个默认动画,它将我的启动器放在后面并在其上弹出新应用程序.而不是这个,我想附加我自己的动画.最好我想默认从触摸点显示的素材动画.

到目前为止我尝试过的事情:

您需要在Android上使用此活动的Theme.AppCompat主题(或后代)

http://tips.androidhive.info/2015/09/android-how-to-apply-material-design-theme/

 <style name="swLaunch" parent="swLaunch.Base">
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowAllowEnterTransitionOverlap">true</item>
    <item name="android:windowAllowReturnTransitionOverlap">true</item>
    <item name="android:windowSharedElementEnterTransition">@android:transition/explode</item>
    <item name="android:windowSharedElementExitTransition">@android:transition/explode</item>
    <item name="android:windowEnterAnimation">@android:transition/explode</item>
    <item name="android:windowExitAnimation">@android:transition/explode</item>
    <item name="android:taskToFrontEnterAnimation">@android:transition/explode</item>
    <item name="android:taskToBackEnterAnimation">@android:transition/explode</item>
    <item name="android:taskToFrontExitAnimation">@android:transition/explode</item>
    <item name="android:taskToBackExitAnimation">@android:transition/explode</item>
    <item name="android:inAnimation">@android:transition/explode</item>
    <item name="android:layoutAnimation">@android:transition/explode</item>
    <item name="android:windowShowAnimation">@android:transition/explode</item>
    <item name="android:activityOpenEnterAnimation">@android:transition/explode</item>
    <item name="android:fragmentOpenEnterAnimation">@android:transition/explode</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这就是我启动应用程序的方式:

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.google.android.gm");
if (launchIntent != null) {
    startActivity(launchIntent);
}
Run Code Online (Sandbox Code Playgroud)

CBe*_*4ok 5

要开始活动的动画:

int left = 0, top = 0;
int width = v.getMeasuredWidth(), height = v.getMeasuredHeight();
ActivityOptions opts = ActivityOptions.makeClipRevealAnimation(v, left, top, width, height);
startActivity(i, opts.toBundle());
Run Code Online (Sandbox Code Playgroud)

在哪里i是一个意图,v是一个视图

回到主屏幕的动画(通过按Home键或Back按钮)

@Override
public void onResume() {
    super.onResume();
    // override default transition animation
    overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
Run Code Online (Sandbox Code Playgroud)