[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的时候才有效,也就是只有在状态栏全透明的时候才有效。

转载于:https://www.cnblogs.com/glorin/p/4962070.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值