android 怎么将activity 退出的动画效果关闭

在AndroidMenifest.xml文件里面的Activity声明中,增加自己的Theme声明,如下:

<activity
            android:name=".MyOrderListServiceActivity"
android:theme="@style/MyTheme" >

在values的style.xml文件里 声明 一个style,起名为MyTheme,注意这里面有我自定义的东西,涉及到动画的声明,就只有 <item name="android:windowAnimationStyle">@style/AnimationActivity</item>这一项。

<style name="MyTheme">
        <!-- float_box为我们定义的窗口背景 -->
        <item name="android:backgroundDimEnabled">true</item>
        <item name="android:windowFrame">@null</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
</style>
在values的style.xml文件里 声明 一个style,起名为AnimationActivity,没错就是上面的MyTheme中的windowAnimationStyle的实现,如下:

<style name="AnimationActivity" mce_bogus="1" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/slide_in_bottom</item>
        <item name="android:activityOpenExitAnimation">@anim/slide_out_bottom</item>
        <item name="android:activityCloseEnterAnimation">@anim/slide_in_bottom</item>
        <item name="android:activityCloseExitAnimation">@anim/slide_out_bottom</item>
</style>

添加完以上的内容,有的机器虽然进入的动画是可用的,但是退出的动画无效,还需要在你的Activity中添加一些代码,保证animation的完美运行
添加全局变量

protected int activityCloseEnterAnimation;
protected int activityCloseExitAnimation

在OnCreate里面添加如下代码:

TypedArray activityStyle = getTheme().obtainStyledAttributes(new int[] {android.R.attr.windowAnimationStyle});
int windowAnimationStyleResId = activityStyle.getResourceId(0, 0);      
activityStyle.recycle();
activityStyle = getTheme().obtainStyledAttributes(windowAnimationStyleResId, new int[] {android.R.attr.activityCloseEnterAnimation, android.R.attr.activityCloseExitAnimation});
activityCloseEnterAnimation = activityStyle.getResourceId(0, 0);
activityCloseExitAnimation = activityStyle.getResourceId(1, 0);
activityStyle.recycle();
在你的程序finish之前,需要调用如下代码:
overridePendingTransition(activityCloseEnterAnimation, activityCloseExitAnimation);

我调用的例子如下:

	@Override
	protected void onPause() {
		//提交禁止退场动画2017.8.5
		overridePendingTransition(activityCloseEnterAnimation, activityCloseExitAnimation);
		super.onPause();
	}

这样就可以了。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值