之前弄了很久没有成功,不是透明不了就是不能全屏,下面大概贴以下代码
1创建sty样式,属性如下:
<style name="CustomActivityDialog" parent="Theme.AppCompat.Light.NoActionBar">
<!--这是启动和关闭当前ACtivity动画,后面再贴出来-->
<item name="android:windowAnimationStyle">@style/anim</item>
<!--背景颜色及透明程度-->
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<!--是否有标题 -->
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<!--这个就是占满全屏 不用再代码中再addFlags等-->
<item name="android:windowFullscreen">true</item>
<!--半透明-->
<item name="android:windowIsTranslucent">true</item>
<!--****是否浮现在activity之上-->
<item name="android:windowIsFloating">false</item>
<!--是否模糊-->
<item name="android:backgroundDimEnabled">true</item>
<!--去除边框-->
<item name="android:windowFrame">@null</item>
<!--是否有覆盖-->
<item name="android:windowContentOverlay">@null</item>
</style>
2.需要在AndroidMainfest中的某个需要的Activity添加如下
android:theme="@style/CustomActivityDialog"
ps:之前一直在代码启动时 setTheme(R.style.CustomActivityDialog); 无效,具体不太清楚。
3.然后在这个activity布局文件中 添加需要透明的属性。比如:
android:alpha=”0.8”
以上就是Activity全屏以及透明,动画简单贴一下代码就不说明了。
<style name="anim" parent="android:Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/bottom_in</item>
<!--<item name="android:activityOpenExitAnimation">@null</item>-->
<item name="android:activityCloseExitAnimation">@anim/bottom_out</item>
<item name="android:activityCloseEnterAnimation">@null</item>
</style>
//下面都是在anim新建的xml文件
//--------------------bottom_in
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="100"
android:fromYDelta="100%p"
android:toYDelta="0"/>
//-------------------bottom_out
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="200"
android:fromYDelta="0"
android:toYDelta="100%p"/>
动画效果是从底到上进入,从头到尾退出.
对了还得加上退出Activity动画无效的代码:在onCreate即可
protected int activityCloseEnterAnimation;
protected int activityCloseExitAnimation;
//解决退出无动画效果
TypedArray activityStyle = getTheme().obtainStyledAttributes(new int[] {android.R.attr.windowAnimationStyle});
int windowAnimationStyleResId = activityStyle.getResourceId(0, 0);
activityStyle.recycle();
activityStyle = getTheme().obtainStyledAttributes(windowAnimationStyleResId, new int[] {android.R.attr.activityCloseEnterAnimation, android.R.attr.activityCloseExitAnimation});
activityCloseEnterAnimation = activityStyle.getResourceId(0, 0);
activityCloseExitAnimation = activityStyle.getResourceId(1, 0);
activityStyle.recycle();
//----退出的时候
finish();
overridePendingTransition(activityCloseEnterAnimation, activityCloseExitAnimation);