android13中,TYPE_APPLICATION_OVERLAY是什么类型的window,和分屏操作的分割线DividerView有什么关系
时间: 2024-03-31 19:33:27 浏览: 27
TYPE_APPLICATION_OVERLAY 是一个在所有应用之上的全局窗口类型,用于在屏幕上显示覆盖物。它的作用类似于悬浮窗,可以在应用程序之上显示一些内容,比如悬浮球、悬浮菜单等。
分屏操作的分割线DividerView是一个View,它被用来分割屏幕,让两个应用程序可以同时显示在屏幕上。DividerView在分屏模式下会被创建并显示,它会在屏幕上显示一条分割线,将屏幕分为两部分,每一部分都是一个应用程序的界面。在分屏模式下,DividerView 的类型会被设置成 TYPE_APPLICATION_OVERLAY。这是因为它需要在所有应用之上显示,确保两个应用程序都可以显示在屏幕上,并且不会被其他应用程序遮挡。
相关问题
可以不使用TYPE_APPLICATION_OVERLAY 换别的方式吗?
如果你不想使用 `TYPE_APPLICATION_OVERLAY` 权限,那么你可以考虑使用其他的 `WindowManager.LayoutParams` 类型,比如 `TYPE_APPLICATION_PANEL`,`TYPE_APPLICATION_MEDIA` 或者 `TYPE_APPLICATION_SUB_PANEL` 等,这些类型的窗口也可以被添加到 WindowManager 中。
以下是一个示例代码,你可以根据自己的需求进行修改:
```
// 创建 GLSurfaceView 对象
GLSurfaceView glSurfaceView = new GLSurfaceView(this);
// 将 GLSurfaceView 添加到 WindowManager 中
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_APPLICATION_PANEL, // 使用其他的 WindowManager.LayoutParams 类型
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE |
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager.addView(glSurfaceView, params);
```
注意,不同的 `WindowManager.LayoutParams` 类型可能会有一些限制和不同的行为,具体可以参考 Android 官方文档中对这些类型的描述。
Android12中,STATE_TYPE 是什么。在源码中哪里定义的
在 Android 12 中,STATE_TYPE 是一个枚举类型,用于表示状态栏的显示类型。它定义在 android.view.WindowManager.LayoutParams 类中,是一个整型值。具体来说,STATE_TYPE 定义了以下几种状态栏的显示类型:
- STATE_TYPE_STATUS_BAR:状态栏显示在屏幕顶部,不覆盖 Activity 的内容。
- STATE_TYPE_SCREEN_OVERLAY:状态栏显示在 Activity 的内容上面,覆盖一部分内容。
- STATE_TYPE_SYSTEM_DIALOG:状态栏显示在屏幕顶部,不覆盖 Activity 的内容,用于显示系统级别的对话框。
- STATE_TYPE_NAVIGATION_BAR:导航栏显示在屏幕底部,不覆盖 Activity 的内容。
- STATE_TYPE_INPUT_METHOD:输入法显示在屏幕底部,不覆盖 Activity 的内容。
在源码中,STATE_TYPE 是通过定义枚举类型来实现的,具体定义在 android.view.WindowManager.LayoutParams 类中,如下所示:
```java
public static enum State {
// 省略其他定义
STATE_TYPE_STATUS_BAR,
STATE_TYPE_SCREEN_OVERLAY,
STATE_TYPE_SYSTEM_DIALOG,
STATE_TYPE_NAVIGATION_BAR,
STATE_TYPE_INPUT_METHOD
}
```
这里定义了 STATE_TYPE_STATUS_BAR、STATE_TYPE_SCREEN_OVERLAY、STATE_TYPE_SYSTEM_DIALOG、STATE_TYPE_NAVIGATION_BAR 和 STATE_TYPE_INPUT_METHOD 五个枚举值,分别对应了不同的状态栏显示类型。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)