在Android中,如何更改状态栏透明的颜色,如下图所示[重复]

Posted

技术标签:

【中文标题】在Android中,如何更改状态栏透明的颜色,如下图所示[重复]【英文标题】:In Android How do I change colour of status bar transparent as shown in bellow photograph [duplicate] 【发布时间】:2018-08-10 13:31:07 【问题描述】:

我可以在我的应用中像这样更改状态栏颜色吗?

【问题讨论】:

1 2 3 4 I've seven years of android exp。 Tbh,如果你有你就不会问这个问题。 Do not show your foolishness in public。剪掉个人言论。 How can you say I've not made any attempt? 你还没有展示你的任何尝试。我不会在此线程中回复您的任何 cmets。祝你的项目好运 【参考方案1】:

是的,您可以更改它的颜色,但我不确定将其更改为透明是否会达到您想要的效果

public static void setStatusBarColor(Activity activity, int color)
    Window window = activity.getWindow();
    window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.setStatusBarColor(ContextCompat.getColor(activity, color));

【讨论】:

【参考方案2】:

你可以这样做-:

private void changeStatusBarColor() 

        Window window = this.getWindow();
// clear FLAG_TRANSLUCENT_STATUS flag:
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) 
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        
// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        
// finally change the color
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
            window.setStatusBarColor(ContextCompat.getColor(this, R.color.colorPrimaryDark));
        
    

【讨论】:

以上是关于在Android中,如何更改状态栏透明的颜色,如下图所示[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何更改启动器中状态栏的颜色?

android导航栏与状态栏颜色及透明度

如何删除在android中更改的自动状态栏颜色

Android:具有动态 actionBar 颜色和 DrawerLayout 的透明状态栏

如何根据代号中的不同形式更改状态栏的颜色?

如何让 Flutter 应用在​​ android 导航栏后面绘制并使导航栏完全透明?