本文共 1891 字,大约阅读时间需要 6 分钟。
引用自OPPO官方文档,这里缩减了一些内容,选取重要内容,包括oppo沉浸式的兼容。
转载请标明出处: 本文出自:【奥特曼超人的博客】
推荐:
目录:
OPPO的刘海屏适配文档稍微比较简单点,首先认识一下OPPO推出的一款屏幕高宽比更大、带有刘海的凹形屏幕的手机,其屏幕规格如下:
采用宽度为1080px, 高度为2280px的圆弧显示屏。 屏幕顶部凹形区域不能显示内容,宽度为324px, 高度为80px。
本次凹形屏规格的机型型号:
上述机型的屏幕规格完全相同,不需分别做差异化处理,统一适配即可。
如何识别凹形屏:
context.getPackageManager().hasSystemFeature(“com.oppo.feature.screen.heteromorphism”)
返回 true为凹形屏 ,可识别OPPO的手机是否为凹形屏。
您在设计应用界面布局时,请确保布局填满屏幕,并且内容无论横屏或竖屏显示都不会被屏幕凹形槽遮蔽。
应用横屏全屏显示
应用竖屏全屏显示
应用完整的全面屏显示,将为用户带来极致的全屏效果体验,增强应用的用户粘性。
适配具体内容:
如果应用可横排显示,避免应用两侧的重要内容被遮挡。
应用横屏全屏显示
1)PPT中介绍的凹形屏的规格是否固定的?以后其他机型是否会有变化?
公告针对上述机型手机,不针对后续机型。后续机型凹型屏的大小、尺寸、位置可能变化。
2)凹型屏是否有统一处理逻辑?
目前在设置 – 显示 – 应用全屏显示 – 凹形区域显示控制,里面有关闭凹形区域开关,用户可通过这个关闭凹形区域避免遮挡(原则可参考google android P 设计说明)。
3)后续是否会兼容Android P?
Google Android P 会有标准的API获取凹形屏,后续会按照标准API提供适配方案,并兼容老方案。
根据谷歌兼容性(CTS)标准要求,应用必须按以下方式中的任意一种,在AndroidManifest.xml中配置方可全屏显示,否则将以非全屏显示。
方式一:配置支持最大高宽比
** android:maxAspectRatio="ratio_float" (API LEVEL 26)
说明:以上两种接口可以二选一.
ratio_float = 屏幕高 / 屏幕宽
(如oppo新机型屏幕分辨率为2280 x 1080, ratio_float = 2280 / 1080 = 2.11,建议设置 ratio_float为2.2或者更大)
方式二:支持分屏,注意验证分屏下界面兼容性
android:resizeableActivity=”true”
建议采用方式二适配支持全面屏。
详见官方文档:
这里介绍通过设置窗口全屏Flag实现OPPO机型状态栏沉浸式方法:
Android5.0 以后的版本
Window window = activity.getWindow();View decorView = window.getDecorView();decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LAYOUT_STABLE);window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);window.setStatusBarColor(Color.TRANSPARENT);
Android4.4 及以前的版本设置方法:
Window window = activity.getWindow();WindowManager.LayoutParams attributes = window.getAttributes();attributes.flags |= WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;window.setAttributes(attributes);