看到网上好多播客中都说用 overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);的确可以,不过要在startActivity后和finish()前,而且每个activity都要这样写方法;
而下面的写法则可以让整个应用的所有activity都是平滑水平切换的,不用在代码中添加额外代码:
1.首先在manifest.xml中定义application节点的主题
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
2.AppTheme是在styles中定义的
<style name="AppTheme" parent="@android:style/Theme">
<item name="android:windowNoTitle">true</item> <!-- 设置没有标题 -->
<item name="android:textSize">20sp</item> <!-- 设置文本大小 -->
<item name="android:textColor">#F34141</item>
<item name="android:background">@android:color/background_light</item>
<!-- 设置activity切换动画 -->
<item name="android:windowAnimationStyle">@style/activityAnimation</item>
</style>
<!-- animation 样式 -->
<style name="activityAnimation" parent="@android:style/Animation">
<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>