<!-- 自定义透明主题 -->
<style name="TransparentActivityTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- 设置背景透明 -->
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 去除标题栏 -->
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<!-- 透明化背景,后面的内容可以显示 -->
<item name="android:windowIsTranslucent">true</item>
<item name="android:backgroundDimEnabled">false</item><!-- 模糊 -->
<item name="android:background">@null</item>
<item name="android:windowFrame">@null</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
</style>
android:theme="@style/TransparentActivityTheme"
注意:如果不生效,尝试clean 工程
Android 8.0 方向设置崩溃问题
在 Android 8.0 中,如果一个 Activity:
是透明的(android:theme 带有 @android:style/Theme.Translucent)
或者是浮动的(Dialog 样式)
然后你设置了:
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
就会抛出异常:
java.lang.IllegalStateException: Only fullscreen activities can request orientation
解决方法
if (Build.VERSION.SDK_INT != Build.VERSION_CODES.O) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}