2.1 Google对刘海屏的支持介绍
Google将刘海屏命名为屏幕缺口了,这一小节内容摘自Android官方介绍: 屏幕缺口支持。
Android P 支持最新的全面屏以及为摄像头和扬声器预留空间的凹口屏幕。 通过全新的 DisplayCutout
类,可以确定非功能区域的位置和形状,这些区域不应显示内容。 要确定这些凹口屏幕区域是否存在及其位置,请使用 getDisplayCutout()
函数。
全新的窗口布局属性 layoutInDisplayCutoutMode
让您的应用可以为设备凹口屏幕周围的内容进行布局。 您可以将此属性设为下列值之一:
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
您可以按如下方法在任何运行 Android P 的设备或模拟器上模拟屏幕缺口:
- 启用开发者选项。
- 在 Developer options(开发者选项) 屏幕中,向下滚动至 Drawing(绘图) 部分并选择 Simulate a display with a cutout(模拟具有凹口的显示屏)。
- 选择凹口屏幕的大小。
注:我们建议您通过使用运行 Android P 的设备或模拟器测试凹口屏幕周围的内容显示。
2.2 Android P提供提供的刘海屏适配方案
- 对于有状态栏的页面,不会受到刘海屏特性的影响,因为刘海屏包含在状态栏中了;
- 全屏显示的页面,系统刘海屏方案会对应用界面做下移处理,避开刘海区显示,这时会看到刘海区域变成一条黑边,完全看不到刘海了;
- 已经适配Android P应用的全屏页面可以通过谷歌提供的适配方案使用刘海区,真正做到全屏显示。
2.3 Android P中支持的凹口屏幕类型
目前Android支持了三类凹口屏幕类型:边角显示屏凹口(斜刘海)、双显示屏凹口(刘海+胡子)、长型显示屏凹口(刘海),如下图所示:
目前的手机主要还是长型显示屏凹口,即刘海屏。其他斜刘海和胡子手机应该还没有实物吧?反正是亮瞎了狗眼了。