如何获得半透明的状态栏?

时间:2019-12-24 15:52:07

标签: android

我设法获得了一个完全透明的状态栏,但是我想要一个半透明的状态栏。下面是为实现完全透明的状态栏而添加的代码。

在我的styles.xml中,添加了以下内容:

        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:windowTranslucentNavigation">true</item>

在我的activity.xml中:

    android:fitsSystemWindows="true"

在我的activity.java的onCreate中:

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

这是我想要实现的目标: Semi-Transparent Status Bar

3 个答案:

答案 0 :(得分:1)

针对您的问题,可能有多种解决方案:

1。。切换到全屏窗口

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

2。 XML方式

<style name="AppTheme.MainActivity" parent="AppTheme">
    <item name="colorPrimary">#ffffff</item>
    <item name="colorPrimaryDark">#ebebeb</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="windowActionBar">false</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="windowNoTitle">true</item>
</style>

答案 1 :(得分:0)

在colors.xml中创建新颜色

<color name="blackT">#88000000</color>

然后在style.xml内部更改主要的深色

<item name="colorPrimaryDark">@color/blackT</item>

答案 2 :(得分:0)

这是您可以在代码上实现的一些选项,

选项1: 在您的xml文件中

 android:background ="#88676767" or "#88000000"

选项2。 在图像视图或任何其他视图上

view.setColorFilter(Color.argb(150, 155, 155, 155),   Mode.SRC_ATOP);

选项3: 在您的布局上

LinearLayout ll = (LinearLayout) findViewById(R.id.test_layout);
Drawable dd = getResources().getDrawable(R.drawable.test);
dd.setAlpha(50);
ll.setBackgroundDrawable(dd);

这可能对您有帮助。