问题标签 [display-cutouts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
10664 浏览

android - 创建 Activity 时如何获取 DisplayCutout 高度?

我有一个带有全屏SurfaceView(纵向)的游戏和在表面上连续呈现的线程。

SurfaceView 已初始化onCreate,其大小由屏幕的宽度和高度(以像素为单位)确定。

创建后,它被设置为 Game Activity 的内容视图(无 XML 定义):

问题是,屏幕高度不包括 Display Cutouts(对于具有它们的设备)并且比允许的绘图屏幕高,因为 renderView 放置在 cutout 区域下方并且不使用它进行渲染。

我试图找到真实的screen height - display cutout height,以便我可以使帧缓冲区具有那个高度。

你知道是否有办法获得显示切口区域高度onCreate,就像我们能够获得导航/状态栏高度一样。下面是返回导航栏高度的片段:

谢谢您的帮助!

- - 更新 - -

我将尝试进一步澄清这个问题:

1)onCreate创建一个全屏人像SurfaceView,带有屏幕宽度和高度的尺寸(无XML)

2) API 级别 > 19 (KitKat) 启用沉浸式模式

3) 屏幕宽度和高度由 Display.getSize() 或 Display.getRealSize() 获取,具体取决于 API 级别

4)在具有顶部显示切口的设备上,视图自动放置在切口下方并且底部内容被剪切,这就是问题

5)我想得到 Display Cutout 的高度onCreate,这样我就可以将 SurfaceView 的高度创建为screenHeight - displayCutoutHeight

6)问题归结为找到显示切口的高度。

0 投票
1 回答
9276 浏览

android-9.0-pie - env(safe-area-inset-top) 在 Android Pie + WebView 69 上不起作用

我有一个全屏科尔多瓦应用程序,我曾经使用下面的 CSS 来制作 iPhone X 的缺口,

Android 将忽略env(safe-area-inset-top), 并用于25px防止状态栏覆盖我的视图。

在此处输入图像描述

env()事情是这样的,在我的Android Oreo手机(华为mate10)中,Android System Webview组件升级到69.0.3497.100版本后,突然发现webview支持。

在此处输入图像描述

但是当我在 Android Pie 模拟器中安装这个 Cordova 应用程序时(启用了剪切模拟并安装了 Chrome/Webview 69),我发现它env(safe-area-inset-top)是 0px,根本没有填充顶部。

在此处输入图像描述

在此处输入图像描述

剪切区域/状态栏覆盖了我的网页内容:

在此处输入图像描述

Chrome/Webview 69 是否支持safe-area-inset-top

0 投票
2 回答
2436 浏览

android - 带有缺口/显示切口的Android导航抽屉问题

我正在使用 Android Studio 模板“ Navigation Drawer Activity ”开发一个 Android 应用程序,但是如果我在带有 Notch/display Cutouts 的手机上打开导航抽屉,更大的状态栏会覆盖 Navigation Drawer 标题的顶部

我该如何解决这个问题?

在此处输入图像描述

这是活动布局xml:

和导航抽屉标题布局:

0 投票
7 回答
6021 浏览

android - NULL 窗口插图

我正在尝试获取 DisplayCutout 并获取

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.view.DisplayCutout android.view.WindowInsets.getDisplayCutout()'

这是我的代码:

0 投票
1 回答
47 浏览

sqlite - How can insert Cutout sign ( ' ) sqlite database from a txt file

I used sqlite database to save my data. I backuped sqlite table to a txt file. When I try to restore from txt to sqlite I get syntax error (code-1) . Because I used cutout sign ( ' ) for example when I writing (Türk'ler geldi).

Error is : android.database.sqlite.SQLiteException: near "ler": syntax error (code 1): , while compiling: .......

How can I insert it. I used ( \' ) but it didn't work.

Here is my code from sqlite to txt file

I try to add .replace(" ' "," \ ' ") but didn't work

I mean like this

0 投票
0 回答
2585 浏览

css - Chrome meta viewport-fit=cover on an android with display cutouts

在使用viewport-fit=cover. Safari 将内容全屏拉伸到剪切区域,而 Chrome 则没有(参见下面华为 Y6 的屏幕截图)这是 Android 上的标准行为还是类似 Safari 行为的过渡阶段?

在 iPhoneX 上,下面的代码使内容边对边拉伸到剪切区域。然后,您通过使用 CSS 安全区域常量来应用边距、填充等来补偿实际内容中“吃掉”的缺口:

在 Adroid 9 Pie 上的最新 Chrome 上,“角”中的区域,靠近凹槽(实际切口)始终是“安全”的,并且具有浏览器 chrome 的默认背景颜色(灰白色)或您在<meta name="theme-color">标签。CSS 安全区域常量无能为力,因为……没有什么需要防范的。

在此处输入图像描述

0 投票
6 回答
66 浏览

php - 删除以特定单词开头并以“。”结尾的子字符串。

从文本的中间我需要删减一个句子或更好地了解有关产品成分的信息。背后的逻辑总是一样的。以“成分”开头,以点“。”结尾。

例如(这是我的$prodDesc):

到目前为止,我尝试过,strpros但事实上它位于文本的中间,我从“成分”到最后都得到了所有内容。

我只需要这个作为输出:

鉴于 $prodDesc 是上面的描述,我的尝试是:

但如前所述,我从“成分”开始直到描述结束。但它应该在示例中的第一个句号处停止,即“成分... ...天然香料”。

0 投票
1 回答
118 浏览

java - ImageView 未显示在三星 One UI 设备的显示剪切区域中

我正在尝试进行全屏活动。我已经为我的活动编辑了主题样式,以在显示切口中显示它。但它不起作用。我正在我的带有 One UI Pie 的三星手机上尝试这个,我在堆栈上看到了一些问题,它们可能适用于像素或 Stock Android。但他们不在三星工作。

这是代码。

这是我的风格代码。

我也以编程方式尝试过。

但没有任何效果。在下面的图片中,您可以看到它的外观。活动截图

所以请告诉我如何在三星设备以及其他设备中做到这一点。

0 投票
1 回答
1592 浏览

android - 如何在窗口管理器参数中添加 LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES?

我正在创建一个 Android 应用程序,其中我通过使用服务和窗口管理器在所有应用程序之上显示浮动视图。我正在尝试在我的窗口管理器参数中添加 WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES 以使我的布局能够覆盖显示切口。但这似乎不适用于我的情况。

我已经尝试以两种方式添加它:

  1. 通过使用 XML 样式:

    并在我的布局根视图中添加了这种样式。但它不起作用。

  2. 通过在我的服务中使用 JAVA 代码:

    它也不起作用。我不确定我是否正确应用了布局参数。请帮我找出问题所在。提前致谢。

编辑:

这是我在服务中实现气泡的方式:

  1. onCreate() 方法中初始化的窗口管理器和布局:

    /li>
  2. 窗口管理器将此视图添加到窗口:

    /li>
  3. 最后通过 addView 方法将此视图添加到 Window 中:

    通过使用上述方法,我可以在其他应用程序之上显示我的视图。但问题是我的视图没有与显示切口重叠。当android处于横向模式时会发生这种情况。

解决方案:

我通过添加这行代码解决了这个问题(如 Answere 中所建议):

0 投票
0 回答
48 浏览

android - 渲染布局以在 Android 中显示缺口

我尝试添加 layoutInDisplayCutoutMode shortEdges 但没有影响。我需要将布局拉伸到顶部,类似于 Netflix android 应用程序中显示的图像