为应用加上Android4.4新特性的全屏模式-沉浸模式(Full-screen Immersive Mode)。

Android4.4的发布带来了新的特性-沉浸模式(Full-screen Immersive Mode),开启后应用占据全屏,虚拟按钮和系统栏隐藏,提高屏幕的利用率和冲击力。

那么怎样为我们的应用加入这个模式呢?先查看下Google的官方文档,里面有完整的示例代码。

 1 // This snippet hides the system bars.
 2 private void hideSystemUI() {
 3     // Set the IMMERSIVE flag.
 4     // Set the content to appear under the system bars so that the content
 5     // doesn't resize when the system bars hide and show.
 6     //开启全屏模式
 7     mDecorView.setSystemUiVisibility(
 8             View.SYSTEM_UI_FLAG_LAYOUT_STABLE
 9             | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
10             | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
11             | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
12             | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
13             | View.SYSTEM_UI_FLAG_IMMERSIVE);
14 }
15 
16 // This snippet shows the system bars. It does this by removing all the flags
17 // except for the ones that make the content appear under the system bars.
18 //取消全屏模式
19 private void showSystemUI() {
20     mDecorView.setSystemUiVisibility(
21             View.SYSTEM_UI_FLAG_LAYOUT_STABLE
22             | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
23             | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
24 }

进入全屏后从屏幕上下放往里滑可重新唤出系统栏和虚拟按钮,但是唤出后系统栏会盖住一小部分内容,这个时候要给根layout设置一个高度为系统栏高度的Padding才能解决,后面会讲到。

而且要再进入全屏模式还要再点击一次按钮。所以我比较推荐下面的模式,唤出的是透明的系统栏和虚拟按钮,短暂的时间后系统栏和虚拟按钮会自动隐藏。

只需要把View.SYSTEM_UI_FLAG_IMMERSIVE改为View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY。

 

 1 @Override
 2 public void onWindowFocusChanged(boolean hasFocus) {
 3         super.onWindowFocusChanged(hasFocus);
 4     if (hasFocus) {
 5         decorView.setSystemUiVisibility(
 6                 View.SYSTEM_UI_FLAG_LAYOUT_STABLE
 7                 | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
 8                 | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
 9                 | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
10                 | View.SYSTEM_UI_FLAG_FULLSCREEN
11                 | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);}
12 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值