Android11 分屏代码
时间: 2023-06-15 10:03:20 浏览: 484
在 Android 11 中,可以使用以下代码实现分屏功能:
1. 进入分屏模式
```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
final Rational rational = new Rational(2, 3);
final PictureInPictureParams.Builder pipBuilder = new PictureInPictureParams.Builder();
pipBuilder.setAspectRatio(rational).build();
enterPictureInPictureMode(pipBuilder.build());
} else {
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
final int width = metrics.widthPixels / 2;
final int height = metrics.heightPixels;
final Rect rect = new Rect(0, 0, width, height);
final boolean isSplit = getWindowManager().getDefaultDisplay().splitScreenPrimary();
if (isSplit) {
// 退出分屏
getWindowManager().getDefaultDisplay().setSplitScreen(false);
} else {
// 进入分屏
final ActivityOptions options = ActivityOptions.makeBasic();
options.setLaunchBounds(rect);
enterPictureInPictureMode(options.toBundle());
}
}
```
2. 退出分屏模式
```java
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
exitPictureInPictureMode();
} else {
getWindowManager().getDefaultDisplay().setSplitScreen(false);
}
```
注意,Android 11 中的分屏模式与之前的版本有所不同,需要根据不同的版本进行适配。在 Android 11 中,可以使用 `enterPictureInPictureMode()` 方法进入分屏模式,而在之前的版本中,需要使用 `ActivityOptions` 和 `setSplitScreen()` 方法实现分屏。
阅读全文