替换android Launcher活动动画

inv*_*sus 4 java android launcher

我正在创建自己的Android启动器.

问题是:

  • 当我发起一项活动时,它向左滑动......
  • 当我关闭它时,它向右滑动......
  • 这很烦人也很难看!

我已经能够通过以下方式删除启动动画:

Intent launch_intent = new Intent("android.intent.action.MAIN");
launch_intent.addCategory("android.intent.category.LAUNCHER");
launch_intent.setComponent(new ComponentName(packageName, name));
launch_intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);

activity.startActivity(launch_intent);
Run Code Online (Sandbox Code Playgroud)

我的目标是:

  • 同时删除关闭的应用程序动画.
  • 或者更改启动/关闭默认动画.

提前致谢!

ela*_*ich 5

我看了一下Android API演示,正如建议您应该使用"overridePendingTransition()"方法,它设置传入活动的动画和传出活动的动画.
该方法应在startActivity()或finish()之后添加:

    Intent launch_intent = new Intent("android.intent.action.MAIN");
    launch_intent.addCategory("android.intent.category.LAUNCHER");
    launch_intent.setComponent(new ComponentName(packageName, name));  
    activity.startActivity(launch_intent);
    overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
Run Code Online (Sandbox Code Playgroud)

转换是标准的Android动画,例如zoom_enter将是这样的:

<set xmlns:android="http://schemas.android.com/apk/res/android"
        android:interpolator="@android:anim/decelerate_interpolator">
    <scale android:fromXScale="2.0" android:toXScale="1.0"
           android:fromYScale="2.0" android:toYScale="1.0"
           android:pivotX="50%p" android:pivotY="50%p"
           android:duration="@android:integer/config_mediumAnimTime" />
</set>
Run Code Online (Sandbox Code Playgroud)

如果您还想在活动关闭时设置动画,例如当用户按下后退或主页按钮时,您应该将overridePendingTransition()添加到onPause()方法.
如果要在某些其他应用程序启动活动时设置动画,请在super.onCreate()之前添加overridePendingTransition().