方式一,使用系统的主题:
AndroidManifest.xml:
android:theme="@android:style/Theme.Translucent.NoTitleBar" //没有标题栏,但是有状态栏
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" //全屏透明
方式二,自定义主题
res-values-thems-theme.xml
<style name="TranslucentTheme" parent="@android:style/Theme.NoTitleBar.Fullscreen">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>-->
<item name="android:windowTranslucentStatus">true</item><!--顶部状态栏是否透明-->
<!--Android 5.x开始需要把颜色设置透明,否则顶部导航栏会呈现系统默认的浅灰色-->
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
<style name="Translucent_NoTitle" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item><!--对话框没有标题,隐藏标题栏-->
<item name="android:backgroundDimEnabled">false</item><!--禁用背景的暗化效果,使背景不会变暗。-->
<item name="android:windowBackground">@android:color/transparent</item><!--窗口背景设置为透明-->
<item name="android:colorBackgroundCacheHint">@null</item><!--设置背景缓存提示为 null,帮助确保透明背景能够正确渲染。-->
<item name="android:windowIsTranslucent">true</item><!--将窗口设置为半透明,允许底层内容透过窗口显示。-->
</style>
getTheme().applyStyle(R.style.Translucent_NoTitle, true);//加载透明主题
常用Theme:
•android:theme="@android:style/Theme.Dialog" 将一个Activity显示为能话框模式 •android:theme="@android:style/Theme.NoTitleBar" 不显示应用程序标题栏 •android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 不显示应用程序标题栏,并全屏 •android:theme="Theme.Light" 背景为白色 •android:theme="Theme.Light.NoTitleBar" 白色背景并无标题栏 •android:theme="Theme.Light.NoTitleBar.Fullscreen" 白色背景,无标题栏,全屏 •android:theme="Theme.Black" 背景黑色 •android:theme="Theme.Black.NoTitleBar" 黑色背景并无标题栏 •android:theme="Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏 •android:theme="Theme.Wallpaper" 用系统桌面为应用程序背景 •android:theme="Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景,且无标题栏 •android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景,无标题栏,全屏 •android:theme="Translucent" 半透明 •android:theme="Theme.Translucent.NoTitleBar" •android:theme="Theme.Translucent.NoTitleBar.Fullscreen" •android:theme="Theme.Panel" •android:theme="Theme.Light.Panel"
参考:
Android设置Activity背景为透明style的方法 - 简书 (jianshu.com)