获取屏幕曲线、角落和切口的物理形状



如何获取有关Galaxy S8和Pixel 2 XL的圆角屏幕角的信息? 我知道Android KitKat Wear API 20中添加了WindowInsets,因此开发人员可以了解Moto 360上的"爆胎"切口。但它只包含来自每个边的整数偏移量。在我对带有角落的 S8 上的测试中,底部插图始终为 0(当底部导航栏隐藏时)。

我看到Android P Developer预览版为此类添加了DisplayCutout,带有RegionPath。文档说这是针对像 Essential 的缺口这样的切口。新DisplayCutout是否还包括有关Pixel 2 XL角落的信息?拥有Pixel和开发人员预览版的人可以确认这一点吗?

如果我将应用的大小调整为浮动窗口(即画中画),然后移动窗口,使其上的角或凹口侵入它,我会得到包含新DisplayCutout信息的onApplyWindowInsets吗?

关于Galaxy S8,S9等曲面边缘屏幕的信息呢?我想DisplayCutout没有添加有关此信息的信息,而我需要一个包含此信息的数据库?在P在2019年年中(?)左右到达S9之前,我们无法确认这一点。

有一些更新:

  • Path已从后续的P开发者预览版中删除,但 3 年后在S版开发者预览版中重新出现:DisplayCutout.getCutoutPath()
  • AndroidR添加了DisplayCutout.getWaterfallInsets(),以获取"代表瀑布显示弯曲区域的插图">
  • S开发人员预览版还通过WindowInsets.getRoundedCorner(int position)添加了RoundedCornerAPI。它提供每个圆角的中心点和半径。参考: https://developer.android.com/about/versions/12/features#rounded_corner_apis

最新更新