Android应用中怎么动态显示与隐藏状态栏

  介绍

这篇文章给大家介绍Android应用中怎么动态显示与隐藏状态栏,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强>什么是沉浸式?

先来分析一下叫错的原因吧,之所以很多人会叫错,是因为根本就不了解沉浸式是什么意思,然后就人云亦云跟着叫了。那么沉浸式到底是什么意思呢?

根据百度百科上的定义,沉浸式就是要给用户提供完全沉浸的体验,使用户有一种置身于虚拟世界之中的感觉。

比如说现在大热的VR就是主打的沉浸式体验。

那么对应到Android操作系统上面,怎样才算是沉浸式体验呢?这个可能在大多数情况下都是用不到的,不过在玩游戏或者看电影的时候就非常重要了。因为游戏或者影视类的应用都希望能让用户完全沉浸在其中,享受它们提供的娱乐内容,但如果这个时候在屏幕的上方还显示一个系统状态栏的话,可能就会让用户分分钟产生跳戏的感觉。

那么我们来看一下比较好的游戏都是怎么实现的,比如说海岛奇兵:

 Android应用中怎么动态显示与隐藏状态栏”> </p> <p>海岛奇兵的这种模式就是典型的沉浸式模式,它的整个屏幕中显示都是游戏的内容,没有状态栏也没有导航栏,用户玩游戏的时候就可以完全沉浸在游戏当中,而不会被一些系统的界面元素所打扰。</p> <p>然后我们再来看一下爱奇艺的实现:</p> <p> <img src= & lt;使用   xmlns: android=癶ttp://schemas.android.com/apk/res/android"   android: layout_width=癿atch_parent"   android: layout_height=癿atch_parent"比;      & lt; ImageView   android: layout_width=癿atch_parent"   android: layout_height=癿atch_parent"   android: src=https://www.yisu.com/zixun/癅drawable/bg”   android: scaleType=" centerCrop "/>      

这里将ImageView的宽和高都设置成match_parent,让图片充满屏幕。现在运行一下程序,效果如下图所示。

 Android应用中怎么动态显示与隐藏状态栏”>,<br/> </p> <p>如果你将图片理解成游戏或者电影界面的话,那这个体验离沉浸式就差得太远了,至少状态栏和ActionBar得要隐藏起来了吧?没关系,我们一步步进行优化,并且在优化中学习。</p> <p>隐藏状态栏和ActionBar的方式在4.1系统之上和4.1系统之下还是不一样的,这里我就不准备考虑4.1系统之下的兼容性了,因为过于老的系统根本就没有提供沉浸式体验的支持。</p> <p>修改MainActivity中的代码,如下所示:</p> <pre class=公共类MainActivity延伸AppCompatActivity {   @Override   保护无效alt=" Android应用中怎么动态显示与隐藏状态栏”>,

这样看上去就有点沉浸式效果的模样了。

虽说这才是正统的沉浸式含义,但有些朋友可能想实现的就是饿了么那样的状态栏效果,而不是直接把整个系统状态栏给隐藏掉,那么又该如何实现呢?

其实也很简单,只需要借助另外一种UI国旗就可以了,如下所示:

super.onCreate (savedInstanceState);   setContentView (R.layout.activity_main);   如果(Build.VERSION。SDK_INT祝辞=21){   .getDecorView视图decorView=getWindow () ();   int选项=View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN   | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;   decorView.setSystemUiVisibility(选项);   getWindow () .setStatusBarColor (Color.TRANSPARENT);   }   ActionBar ActionBar=getSupportActionBar ();   actionBar.hide ();

Android应用中怎么动态显示与隐藏状态栏