android导航栏字体,Android状态栏/导航栏颜色

最近工作中正好遇到这个问题,其实这个问题的解决方案现在已经非常多了,正好遇到就记录一下。

沉浸式状态栏有很多种,实现方案都不太一样,现在我记录最简单的两种。更多内容可参考Android4.4、Android5.0+状态栏颜色、透明等设置

1.状态栏透明

设置状态栏透明是实现沉浸式状态栏的一种方法,状态栏透明之后,系统会自适应的将状态栏颜色设置为布局的背景颜色。这样实现的状态栏和布局背景相似,但是会多一层灰色阴影。导航栏也是一样的效果。

注意:设置状态透明之后,界面布局会上铺,可以在xml文件的根布局进行相关设置android:fitsSystemWindows="true"。

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

getWindow().setStatusBarColor(Color.TRANSPARENT);

99084d6155f0

半透明状态栏.png

2.设置状态栏颜色

如果不想让状态栏有灰色的阴影,可以直接设置状态栏的颜色,或者直接设置状态栏透明,注意,这里的透明和上面的透明不是一种效果,这里的透明是状态真的透明,不会有灰色阴影,背景颜色会铺满状态栏和导航栏,

Window window = getWindow();

//After LOLLIPOP not translucent status bar

window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

//Then call setStatusBarColor.

window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

window.setStatusBarColor(getResources().getColor(R.color.test_bg));

99084d6155f0

设置状态栏颜色.png

以上两种都是比较简单的设置方法,需要注意该设置要在setContentView之前执行,至于图片铺上状态栏,以后再试一试。

用第二种方法设置的状态栏或者导航栏可能会改变状态栏和导航栏字体的颜色,目前网上除了小米和魅族提供的设置状态栏字体颜色的方法,其他厂商还不能改变状态栏/导航栏字体颜色。系统原本只有两套显色方法,白色和黑色,可以在代码中调用window.getDecorView().setSystemUiVisibility进行相应的设置,设置亮色主题或暗色主题,改变状态栏/导航栏字体颜色。

Window window = getWindow();

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);

window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

// 状态栏(以上几行代码必须,参考setStatusBarColor|setNavigationBarColor方法源码)

window.setNavigationBarColor(Color.TRANSPARENT);

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值