Activity之间切换的动画,系统默认为由右滑入,再由左滑出,有时需求需要改变默认的切换动画,这时就需要自定义Activity切换的动画
具体实现:
1、res/anim文件夹下创建动画资源
由屏幕底部进入的动画
campaign_actiivty_enter.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%p"
android:toYDelta="0%p"
android:duration="1500">
</translate>
</set>
由顶部向下退出的动画
campaign_activity_exit.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="0%p"
android:toYDelta="100%p"
android:duration="1500">
</translate>
</set>
2、在res/values/styles.xml文件中写入相关Theme
<span style="font-size:18px;"> <!--活动弹窗开始-->
<style name="Campaign_Dialog_Theme">
<item name="android:windowBackground">@color/transparent_background</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@style/Campaign_Dialog_Enter_Exit</item>
</style>
<style name="Campaign_Dialog_Enter_Exit">
<item name="android:activityOpenEnterAnimation">@anim/campaign_actiivty_enter</item>
<item name="android:activityCloseEnterAnimation">@anim/campaign_activity_exit</item>
<item name="android:activityOpenExitAnimation">@anim/campaign_actiivty_enter</item>
<item name="android:activityCloseExitAnimation">@anim/campaign_activity_exit</item>
</style>
<!--活动弹窗结束--></span>
<span style="font-size:18px;"> <!--活动弹窗开始-->
<activity
android:name=".ui.campaign.CampaignDialog"
android:theme="@style/Campaign_Dialog_Theme">
</activity>
<!--活动弹窗结束-->
</application></span>
4、编写测试Activity
<span style="font-size:18px;"> private void showCampaignDialog() {
Intent intent = new Intent(this,CampaignDialog.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
}</span>