android 怎麼將activity 退出的動畫效果關閉

android 怎麼將activity 退出的動畫效果關閉,在AndroidMenifest.xml文件裡面的Activity聲明中,增加自己的Theme聲明,如下:


在values的style.xml文件裡 聲明 一個style,起名為MyTheme,註意這裡面有我自定義的東西,涉及到動畫的聲明,就隻有 @style/AnimationActivity這一項。


        true
        @null
        @android:color/transparent
        true
        @null
        true
        true
        @style/AnimationActivity

在values的style.xml文件裡 聲明 一個style,起名為AnimationActivity,沒錯就是上面的MyTheme中的windowAnimationStyle的實現,如下:

@anim/slide_in_bottom
        @anim/slide_out_bottom
        @anim/slide_in_bottom
        @anim/slide_out_bottom

添加完以上的內容,有的機器雖然進入的動畫是可用的,但是退出的動畫無效,還需要在你的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();
	}
這樣就可以瞭。

You May Also Like