首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在android (棉花糖及23+以上)中更改状态栏通知图标的颜色/色调?

如何在android (棉花糖及23+以上)中更改状态栏通知图标的颜色/色调?
EN

Stack Overflow用户
提问于 2015-10-24 09:38:08
回答 2查看 39.8K关注 0票数 21

如标题所示,如何将状态栏图标的颜色更改为暗色调,而不是默认的白色。

来自

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-24 09:38:08

要使状态栏图标具有暗色调而不是默认的白色,请在styles.xml (或更准确地说是在values-v23/styles.xml中)文件中添加以下标记:

代码语言:javascript
运行
复制
<item name="android:windowLightStatusBar" tools:targetApi="23">true</item>

您还可以在运行时通过将标志设置为任意View来更改它。

代码语言:javascript
运行
复制
View yourView = findViewById(R.id.your_view);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (yourView != null) {
        yourView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
    }
}

如果要重置更改,请如下所示清除标志:

代码语言:javascript
运行
复制
yourView.setSystemUiVisibility(0);
票数 77
EN

Stack Overflow用户

发布于 2016-11-16 09:39:36

下面是示例代码,在人像和景观之间切换时更改状态栏颜色。肖像画模式:灯条,暗图标;景观模式:暗栏,灯图标;主题:"Theme.AppCompat.Light“。

代码语言:javascript
运行
复制
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        Window window = getWindow();
        View decorView = window.getDecorView();
        if(Configuration.ORIENTATION_LANDSCAPE == newConfig.orientation) {
            decorView.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_STICKY);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                window.setStatusBarColor(Color.parseColor("#55000000")); // set dark color, the icon will auto change light
            }
        } else {
            decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                window.setStatusBarColor(Color.parseColor("#fffafafa"));
            }
        }
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33316668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档