Android 使用FLAG\u ACTIVITY\u CLEAR\u TOP在活动之间切换动画

Android 使用FLAG\u ACTIVITY\u CLEAR\u TOP在活动之间切换动画,android,animation,android-activity,android-intent,transition,Android,Animation,Android Activity,Android Intent,Transition,在我的android应用程序中,我正在制作一个方法,弹出所有活动并显示第一个活动 我使用以下代码: Intent intent = new Intent(this, MMConnection.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); this.startActivity(intent); overridePendingTransition(android.R.anim.fade_in, android.R.anim.fad

在我的android应用程序中,我正在制作一个方法,弹出所有活动并显示第一个活动

我使用以下代码:

Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
当我注意到转换仍然是从左到右的动画时,有人知道在开始活动时是否有方法更改系统动画吗

实际上,我希望有一个从右到左的过渡(比如点击返回按钮)

谢谢你的帮助

你应该看看


当然,这要求您至少运行SDK的2.0版。

CoolMcGrr是正确的,您需要使用

为了特别获得标准的“后退按钮”转换,我将它们用作
enteraim
exitAnim
转换:

在.xml中向右推送

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_shortAnimTime"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" />
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_shortAnimTime"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_shortAnimTime" />
</set>


push\u right\u out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="@android:integer/config_shortAnimTime"/>
    <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_shortAnimTime" />
</set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="@android:integer/config_shortAnimTime"/>
    <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_shortAnimTime" />
</set>

由于前IC和IC具有不同的内置活动转换,现在出现了问题。 这比独立定义自己的动画和SDK要干净得多:

Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NO_ANIMATION);
this.startActivity(intent);
finish();
这将启动活动(尚未可见),并播放“活动完成”转换到新活动。

我使用了以下代码:

Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(intent);
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);

您可以在或中看到这些示例。您还可以从中看到更多信息。

对我来说似乎是一个更好的答案,因为E-Riz实际上回答了这个问题,而不是像CoolMcGrr那样仅仅发布链接。8个月后,E-Riz再次回答了这个问题。你认为凌驾于此的过渡期在哪里?startActivity之前还是之后?@Tur,请阅读Javadoc:,int)