项目里设置页面进出动画,所以通过style里面设置,具体代码如下:
在style.xml中AppTheme里配置Activity的动画
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!--<item name="android:windowIsTranslucent">true</item>-->
<!--设置Activity切换动画-->
<item name="android:windowAnimationStyle">@style/AnimationActivity</item>
</style>
<!--Activity进场。出场动画-->
<style name="AnimationActivity" parent="@android:style/Animation.Activity">
<!--用于设置打开新的Activity并进入新的Activity展示的动画-->
<item name="android:activityOpenEnterAnimation">@anim/slide_in_left</item>
<!--用于设置打开新的Activity并销毁之前的Activity展示的动画-->
<item name="android:activityOpenExitAnimation">@anim/slide_out_right</item>
<!--用于设置关闭当前Activity进入上一个Activity展示的动画-->
<item name="android:activityCloseEnterAnimation">@anim/slide_in_right</item>
<!--用于设置关闭当前Activity时展示的动画-->
<item name="android:activityCloseExitAnimation">@anim/slide_out_left</item>
</style>
slide_in_left.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
android:zAdjustment="top">
<translate
android:duration="300"
android:fromXDelta="-100.0%p"
android:toXDelta="0.0" />
</set>
slide_in_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
android:zAdjustment="top">
<translate
android:duration="300"
android:fromXDelta="100.0%p"
android:toXDelta="0.0" />
</set>
slide_out_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
android:zAdjustment="top">
<translate
android:duration="300"
android:fromXDelta="0.0"
android:toXDelta="-100.0%p" />
</set>
slide_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
android:zAdjustment="top">
<translate
android:duration="300"
android:fromXDelta="0.0"
android:toXDelta="100.0%p" />
</set>
配置好后我发现在某些手机上运行却失效了,由于时间原因只好动态去设置Activity的动画效果,overridePendingTransition(int enterAnim, int exitAnim) 通过这个方法来设置Activity的进出动画。
ps:int enterAnim 进入动画
int exitAnim 退出动画
注意此方法在 startActivity()和 finish()之后调用
在BaseActviity里:
@Override
public void startActivity(Intent intent) {
super.startActivity(intent);
overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right);
}
@Override
public void finish() {
super.finish();
overridePendingTransition( R.anim.slide_in_right,R.anim.slide_out_left);
}
暂时先这样,有时间了再解决最开始失效的问题