Android 沉浸式——systemUI

首先作为我们平时所使用的systemUI,主要有以下几种参数设置

1. View.SYSTEM_UI_FLAG_VISIBLE:显示状态栏,Activity不全屏显示(恢复到有状态的正常情况)。

2. View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。

3. View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。

4. View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶     端布局部分会被状态遮住。

5. View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

6. View.SYSTEM_UI_LAYOUT_FLAGS:效果同View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

7. View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏虚拟按键(导航栏)。有些手机会用虚拟按键来代替物理按键。

8. View.SYSTEM_UI_FLAG_LOW_PROFILE:状态栏显示处于低能显示状态(low profile模式),状态栏上一些图标显示会被隐藏。

 通过代码设置这些参数主要有两种 方法,一种是通过 getWindow().getAttributes得到params进行参数设置

如下:

Window window = getWindow();
WindowManager.LayoutParams params = window.getAttributes();
params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION|View.SYSTEM_UI_FLAG_IMMERSIVE;
window.setAttributes(params);

另一种是通过 getWindow().getDecorView()得到View对参数进行设置

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

本人推荐使用第二种方法,使用第一种方法的情况下会出现一些Window显示异常的问题,需要注意的是,无论通过哪种方法进行设置都需要在 onCreate() 方法里面的super.onCreate(savedInstanceState)之前设置

谢谢观看,微视的朋友记得给我点赞哦 ! 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SystemUIAndroid系统的一部分,它提供了状态栏、导航栏、锁屏等与用户界面相关的服务。如果你想开发SystemUI,需要先了解Android系统开发的基础知识和相关API。以下是一些基本步骤: 1. 下载并安装Android Studio和Android SDK。 2. 创建一个新的Android项目,并选择“Add No Activity”选项。 3. 在项目的build.gradle文件中添加依赖项: ``` dependencies { implementation 'com.android.systemui:systemui:XXX' } ``` 其中,XXX是你希望使用的SystemUI版本。 4. 在AndroidManifest.xml文件中添加以下内容: ``` <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.systemui"> <application android:name=".SystemUIApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher"> <meta-data android:name="preloaded_fonts" android:resource="@array/preloaded_fonts" /> <receiver android:name=".SystemUIBroadcastReceiver" /> <service android:name=".SystemUIService" /> </application> </manifest> ``` 其中,SystemUIApplication、SystemUIBroadcastReceiver和SystemUIService是你需要根据自己的需求创建的类。 5. 在Android Studio中创建一个新的Module,选择“Android Library”,并将它的名称设置为“SystemUI”。 6. 在SystemUI Module的build.gradle文件中添加以下依赖项: ``` dependencies { implementation 'com.android.systemui:systemui:XXX' implementation 'com.android.support:support-v4:XXX' implementation 'com.android.support:design:XXX' implementation 'com.android.support:cardview-v7:XXX' implementation 'com.android.support:recyclerview-v7:XXX' } ``` 其中,XXX是你希望使用的SystemUI版本和Android Support库版本。 7. 在SystemUI Module中创建你需要的类,例如StatusBar、NavigationBar等。 8. 在AndroidManifest.xml文件中声明你的SystemUI类,例如: ``` <service android:name=".StatusBar" /> <service android:name=".NavigationBar" /> ``` 9. 在Android系统中启动你的SystemUI,例如: ``` adb shell am startservice com.android.systemui/.StatusBar adb shell am startservice com.android.systemui/.NavigationBar ``` 以上是开发SystemUI的基本步骤,但是要想真正实现一个完整的SystemUI,需要深入了解Android系统的架构和API。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海_阔天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值