Activity设置背景透明:
<!--activity背景透明-->
<style name="TranslucentStyle" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowAnimationStyle">@style/AnimBottom</item> <!--页面淡入淡出动画-->
<item name="android:windowFrame">@null</item><!--边框-->
<item name="android:windowIsTranslucent">true</item><!--半透明-->
<item name="android:windowNoTitle">true</item><!--无标题-->
<item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
<item name="android:windowFullscreen">true</item>
<item name="android:backgroundDimEnabled">true</item><!--模糊-->
</style>
<!--页面淡入淡出动画-->
<style name="AnimBottom" parent="@android:style/Animation">
<!--新Activity进入动画-->
<item name="android:activityOpenEnterAnimation">@anim/push_bottom_in</item>
<!--旧Activity退出动画-->
<item name="android:activityOpenExitAnimation">@anim/push_bottom_out</item>
<!--旧Activity进入动画-->
<item name="android:activityCloseEnterAnimation">@anim/push_bottom_in</item>
<!--新Activity退出动画-->
<item name="android:activityCloseExitAnimation">@anim/push_bottom_out</item>
</style>
在AndroidManifest.xml中设置:
<activity
android:name=".xx.xxx.xxxActivity"
android:theme="@style/TranslucentStyle"></activity>
设置之后发现进入动画和退出动画都不执行。
原因: activity有自带的默认过渡动画,对我们自己设置的动画造成了干扰
解决方法: 重写Activity的startActivity()和finish()方法,在该方法中加上overridePendingTransition(0,0);即可去掉干扰的动画操作
startActivity(new Intent(A.this, B.class));
overridePendingTransition(R.anim.push_bottom_in, R.anim.push_bottom_out);
@Override
public void finish() {
super.finish();
//注释掉activity本身的过渡动画
overridePendingTransition(R.anim.push_bottom_in, R.anim.push_bottom_out);
}