• [Android]Android M如何设置状态栏图标黑白色


    Google发布了Android新的大版本M,也进一步加强了应用沉浸式的支持,问题是,沉浸之后,如果界面也是浅色的,就会造成图标看不清楚的问题。因此,M之后,Android原生就支持状态栏图标的黑白色处理了。

    M上面增加了一个Flag(以下内容引自Google SDK文档):

    public static final int SYSTEM_UI_FLAG_LIGHT_STATUS_BAR

    Added in API level 23

    Flag for setSystemUiVisibility(int): Requests the status bar to draw in a mode that is compatible with light status bar backgrounds.

    For this to take effect, the window must request FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS but not FLAG_TRANSLUCENT_STATUS.

    See Also
    • windowLightStatusBar
    Constant Value: 8192 (0x00002000)
     
    只要使用这个Flag,就可以设置状态栏图标为黑色或者白色(其实按照本意,是告诉系统状态栏顶部是白色的,需要按一个合适的模式去绘制状态栏,当然,其实就是黑色)。
     
    具体使用方法:
    public void setDarkStatusIcon(boolean bDark) {
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
                View decorView = getWindow().getDecorView();
                if(decorView != null){
                    int vis = decorView.getSystemUiVisibility();
                    if(bDark){
                        vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
                    } else{
                        vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
                    }
                    decorView.setSystemUiVisibility(vis);
                }
            } 
    }

    这个Flag只有在使用了FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS 并且没有使用 FLAG_TRANSLUCENT_STATUS的时候才有效,也就是只有在状态栏全透明的时候才有效。

  • 相关阅读:
    TERSUS笔记员工信息409-修改
    TERSUS笔记员工信息408-查询
    TERSUS笔记员工信息407-07GO
    TERSUS笔记员工信息406-03首页
    TERSUS笔记员工信息405-04上一页
    TERSUS笔记员工信息404-05下一页
    TERSUS笔记员工信息403-06末页
    TERSUS笔记员工信息402-08每页条数逻辑
    layui 更新echarts版本后地图报错
    常用的CMS系统有哪些
  • 原文地址:https://www.cnblogs.com/glorin/p/4962070.html
Copyright © 2020-2023  润新知