从https://developer.android.com/training/material/theme.html#StatusBar,在如何使状态栏透明方面,我经历了很多不同的尝试和错误,但运气不太好。
我不想要导航抽屉,只是一架飞机和一个简单的活动,带有半透明的状态栏,就像它们在屏幕上显示的那样http://www.google.com/design/spec/style/imagery.html#imagery-最佳实践
这是我的设计
<style name="AppTheme" parent="android:Theme.Material.NoActionBar">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:windowActionBar">false</item>
<!-- your app branding color for the app bar -->
<item name="android:colorPrimary">@android:color/transparent</item>
<!-- darker variant for the status bar and contextual app bars -->
<item name="android:colorPrimaryDark">@android:color/transparent</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:fitsSystemWindows">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
</style>
和java 中的代码
getWindow().setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().getAttributes().flags &= (~WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().setStatusBarColor(Color.TRANSPARENT);
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE);
我已经看过很多堆叠式的答案,包括使用ScrimInsetsFrameLayout,但似乎没有什么能像遵循的确切规则那样简单
您也可以自己在状态栏后面绘制。例如,如果您想在照片上透明地显示状态栏,请使用微妙的深色渐变来确保白色状态图标可见。为此,请将android:statusBarColor属性设置为@android:color/transparent,并根据需要调整窗口标志。您也可以使用Window.setStatusBarColor()方法进行动画或淡入淡出。注意:状态栏几乎总是应该从主工具栏上有一个清晰的轮廓,除非您在这些栏后面显示边缘到边缘的丰富图像或媒体内容,并且您使用渐变来确保图标仍然可见。
这可以使用xml来完成。使用框架布局,以便可以向其中添加两个或多个图像视图。