android - 如何在前置摄像头孔区域也获得全屏(沉浸式)活动?
问题描述
我的应用是身临其境的全屏应用,但在运行 android 9 + 且屏幕上有前置摄像头孔的新设备中 - 有一条黑线而不是状态栏。(状态栏曾经是摄像头孔所在的位置)。我想让所有屏幕都充满,包括相机孔区域。
我知道用户可以转到:设置、显示、全屏应用程序 - 在此选项中找到我的应用程序并将其从“自动”更改为“全屏”(在 android 9 中)或从 OFF 更改为 ON(在 android 11 中)而且它也会被拉伸到相机孔上。但我必须从应用程序内部以编程方式进行。
我可以看到手机上的许多游戏和应用程序在摄像头孔上也处于全屏状态,即使在设置中:显示:全屏应用程序->“全屏”选项已关闭(android 11)或“这些应用程序的“自动”(Android 9)。所以它必须可以通过编程来完成。
现在我正在使用它来全屏显示(与 android studio simple fullScreenActivity 新项目相同):
private final Runnable mHidePart2Runnable = new Runnable() {
@SuppressLint("InlinedApi")
@Override
public void run() {
// Delayed removal of status and navigation bar
// Note that some of these constants are new as of API 16 (Jelly Bean)
// and API 19 (KitKat). It is safe to use them, as they are inlined
// at compile-time and do nothing on earlier devices.
mContentView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
};
谢谢回答
在图片中:
当设备的此应用的全屏显示设置为:“自动”时全屏活动,因此有一条黑线而不是状态栏(在前置摄像头区域)。我怎样才能在这个地方也让全屏拉伸?
此应用的 android 显示设置为“全屏”的全屏活动。
设置更改选项(我想以编程方式从“自动”更改为“全屏”)。
解决方案
我的朋友 Dima Kroytor 找到了答案!在这里.. Mohamad Bdour 发布的Galaxy S10、S10+ 全屏模式:在值中:样式:将此添加到您的 AppTheme 样式
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
如果您的应用程序的最低级别 < 27,则将其放在文件夹 values-27 下
推荐阅读
- java - 尝试添加反应时出现 onGuildMessageReceived() 问题
- angular - 包含重复的“内容”项目。.net core angular 6 web app中assets文件夹中的.json文件
- ruby-on-rails - 如何仅使用状态码检查 Rails 中 API 的成功响应?
- python - 通过另一种策略引用一种策略
- c# - 在查询中过滤多个 Geo near 操作会发送错误
- javascript - 了解产量如何影响 JS 生成器中的返回值
- apache-spark - 如果不在列表中,如何替换值?
- excel - 从目录中已关闭的工作簿中获取单元格值 - 如何遍历所有现有文件?
- python - 使用 Pandas 进行聚合和分组
- r - 在同一个 geom_text 上使用 ggrepel 和 shadowtext