第一步,我先实现了两个activity跳转时自定义动画,在startActivity(intent);
之后加入
overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
第一个参数指nextActivity进入时动画,第二个参数指currentActivity退出时动画。
第二步,去掉activity之间跳转动画。
取消动画需要设置android:windowAnimationStyle属性。
自定义一个style.xml。
<resources>
<style name="Theme" parent="android:Theme">
<item name="android:windowAnimationStyle">@style/Animation</item>
</style>
<style name="Animation">
<item name="android:activityOpenEnterAnimation">@null</item>
<item name="android:activityOpenExitAnimation">@null</item>
<item name="android:activityCloseEnterAnimation">@null</item>
<item name="android:activityCloseExitAnimation">@null</item>
<item name="android:taskOpenEnterAnimation">@null</item>
<item name="android:taskOpenExitAnimation">@null</item>
<item name="android:taskCloseEnterAnimation">@null</item>
<item name="android:taskCloseExitAnimation">@null</item>
<item name="android:taskToFrontEnterAnimation">@null</item>
<item name="android:taskToFrontExitAnimation">@null</item>
<item name="android:taskToBackEnterAnimation">@null</item>
<item name="android:taskToBackExitAnimation">@null</item>
</style>
</resources>
以上代码中:各个标签属性在http://developer.android.com/reference/android/R.attr.html
可以找到各个标签属性意义。
然后在AndroidManifest.xml中每个<activity>标签中加入属性android:screenOrientation="nosensor" android:theme="@style/Theme"
如下:
<activity android:name=".MainActivity" android:label="@string/app_name"
android:screenOrientation="nosensor" android:theme="@style/Theme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecondActivity" android:label="@string/app_name"
android:screenOrientation="nosensor" android:theme="@style/Theme" />
然后将第一步中设置动画的语句注释掉。就可以实现两个activity之间去掉动画了。