看到网上好多播客中都说用 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>