沉浸式体验一:弱化系统栏的显示

弱化系统栏

本文旨在描述怎样在Android4.0(API level 14)及以上,弱化系统栏(即状态栏和导航栏),Android4.0 以前未内置提供此项支持。

当使用本文描述的方法时,屏幕内容不会产生大小的变化,但是系统栏的图标会有明显的缩小变化。一旦用户触摸状态栏或导航栏,都会导致系统栏的重新完全显示。此方法的优点是系统栏会以模糊的方式显示出来,由此可以不用牺牲对系统栏操作的方便性去实现一个沉浸式体验。

弱化状态栏和导航栏的显示


通过 SYSTEM_UI_FLAG_LOW_PROFILE flag实现,代码如下:

// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);

一旦用户触摸状态栏或者导航栏,此标志将会被清除,导致系统栏恢复原样。而一旦标志清除了之后,要想再实现此效果,就需要重新设置此标志。

图一显示了一张相册图片在导航栏弱化下的效果图(备注:此图中的状态栏不是弱化状态,而是被完全隐藏了),其中我们可以注意到,导航栏的操作都变成了白色的圆点了。
图1
图一.导航栏弱化效果

图二显示同样的相册图片,只是系统栏为显示状态。
图二
图二.导航栏显示后效果

显示状态栏和导航栏


如果你想动态的用代码手动清除已经通过setSystemUiVisibility设置的标志位,代码如下:

View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears all flags.
decorView.setSystemUiVisibility(0);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值