某些版本手机在设置activity模式为singleInstance模式下的时候,会默认自带一个放缩的切换动画,跟其他切换动画不协调,此时解决如下。
将所有的activity都设置动画,覆盖掉默认的,
设置主题:
android:theme="@style/NoTitleBar"
<style name="NoTitleBar" parent="android:Theme.Light.NoTitleBar"> <item name="android:windowAnimationStyle">@style/AnimationActivity</item> </style>切换动画
<style name="AnimationActivity" parent="@android:style/Animation.Activity" mce_bogus="1"> <item name="android:activityOpenEnterAnimation">@anim/slide_right_in</item> <item name="android:activityOpenExitAnimation">@anim/slide_left_out</item> <item name="android:activityCloseEnterAnimation">@anim/slide_left_in</item> <item name="android:activityCloseExitAnimation">@anim/slide_right_out</item> </style>这只完成了对正常activity的操作动画
进入到singleInstance的activi中时,进入activity加入
overridePendingTransition(R.anim.slide_right_in, R.anim.slide_left_out);注意顺序不能交换
销毁activity
overridePendingTransition( R.anim.slide_left_in,R.anim.slide_right_out);顺序不能交换
slide_left_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="400" android:fromXDelta="-100.0%p" android:toXDelta="0.0" /> </set>
slide_left_out.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="400" android:fromXDelta="0.0" android:toXDelta="-100.0%p" /> </set>
slide_right_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="400" android:fromXDelta="100.0%p" android:toXDelta="0.0" /> </set>
slide_right_out.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="400" android:fromXDelta="0.0" android:toXDelta="100.0%p" /> </set>