在我的Android应用程序中,我正在制作一个弹出所有活动并启动第一个活动的方法。
我使用此代码:
Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
this.startActivity(intent);
我注意到转换仍然是从左到右的动画,有人知道在开始活动时是否有办法改变系统动画?
实际上,我理想地希望有一个从右到左的过渡(就像点击返回按钮时一样)
感谢您的帮助!
答案 0 :(得分:45)
CoolMcGrr是对的,你想使用overridePendingTransition(int enterAnim, int exitAnim)
。
要专门获取标准的“后退按钮”转换,我将这些转换为enterAnim
和exitAnim
转换:
<强> push_right_in.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>
<强> push_right_out.xml 强>
<?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>
答案 1 :(得分:8)
你应该看看Activity.overridePendingTransition()。
当然,这要求您至少运行SDK的2.0版本。
答案 2 :(得分:6)
现在出现问题,因为前ICS和ICS具有不同的内置活动转换。 这比定义自己的动画和SDK独立更简洁:
Intent intent = new Intent(this, MMConnection.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NO_ANIMATION);
this.startActivity(intent);
finish();
这将启动活动(尚未显示)并播放&#34;活动结束&#34;过渡到新活动。
答案 3 :(得分:6)
我使用了这段代码:
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
您可以在GmailAnimation或LopeAnimations中查看这些示例。您还可以在此Blog中看到更多内容。