android 在深色和浅色通知状态栏图标之间切换

ar7v8xwq  于 2022-12-09  发布在  Android
关注(0)|答案(2)|浏览(218)

如何根据状态栏的不同在暗和亮之间更改通知的状态栏图标。
在某些应用程序中,状态栏是暗的,在这种情况下图标应该是亮的,而在其他应用程序中,状态栏是亮的,在这种情况下图标应该是暗的。
那么,我如何得到一个状态栏图标,显示灰色的应用程序与轻主题,并显示白色在黑暗的主题应用程序?
先谢谢你了。
编辑:我需要知道的是如何改变我的应用程序通知状态栏图标颜色为亮/暗,我不想改变状态栏颜色。
例如:状态栏中的YouTube应用程序通知图标通常是亮的,但当状态栏是亮的时会更改为暗图标。

bkkx9g8r

bkkx9g8r1#

不幸的是,你不能在23 API级别以下的状态栏中使用暗图标。你可以为23+及以下API级别设置一个单独的主题,然后在主题中使用此属性,使状态栏变亮,图标变暗:

<item name="android:windowLightStatusBar">true</item>

更新:实际上你不能改变图标本身的颜色。系统独立处理它。它总是在深色状态栏上绘制白色图标。如果你想在浅色状态栏上绘制深色图标-你应该告诉系统,你正在使用一个浅色状态栏通过该属性,我上面提到过。但它只能在23+ API级别上实现。

nhjlsmyf

nhjlsmyf2#

您可以使用以下代码片段:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (darkIcons) {
            window.decorView.systemUiVisibility = window.decorView.windowSystemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
        } else {
            window.decorView.systemUiVisibility = window.decorView.windowSystemUiVisibility and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv()
        }
    }

相关问题