android兼容oppo手机刘海屏解决方案

简介: 引用自OPPO官方文档,这里缩减了一些内容,选取重要内容,包括oppo沉浸式的兼容。 转载请标明出处: https://blog.

引用自OPPO官方文档,这里缩减了一些内容,选取重要内容,包括oppo沉浸式的兼容。
转载请标明出处:
https://blog.csdn.net/DJY1992/article/details/80688802
本文出自:【奥特曼超人的博客】

推荐:

目录:

1.机型

OPPO的刘海屏适配文档稍微比较简单点,首先认识一下OPPO推出的一款屏幕高宽比更大、带有刘海的凹形屏幕的手机,其屏幕规格如下:

安卓刘海屏奥特曼超人dujinyang

采用宽度为1080px, 高度为2280px的圆弧显示屏。 屏幕顶部凹形区域不能显示内容,宽度为324px, 高度为80px。

2. 如何识别凹形屏

本次凹形屏规格的机型型号:

  • PAAM00
  • PAAT00
  • PACM00
  • PACT00
  • CPH1831
  • CPH1833

上述机型的屏幕规格完全相同,不需分别做差异化处理,统一适配即可。

如何识别凹形屏:

context.getPackageManager().hasSystemFeature(“com.oppo.feature.screen.heteromorphism”)

返回 true为凹形屏 ,可识别OPPO的手机是否为凹形屏。

3. 应用适配布局说明

您在设计应用界面布局时,请确保布局填满屏幕,并且内容无论横屏或竖屏显示都不会被屏幕凹形槽遮蔽。

应用横屏全屏显示
奥特曼超人刘海屏米奇云

应用竖屏全屏显示
奥特曼超人刘海屏米奇云

4. 应用适配内容

应用完整的全面屏显示,将为用户带来极致的全屏效果体验,增强应用的用户粘性。

适配具体内容:

  1. 声明全屏显示(具体方法见附录)。
  2. 适配沉浸式状态栏,避免状态栏部分显示应用具体内容。
  3. 如果应用可横排显示,避免应用两侧的重要内容被遮挡。

    应用横屏全屏显示
    奥特曼超人dujinyang
    应用竖屏全屏显示
    android刘海屏oppo

5. 常见问题

1)PPT中介绍的凹形屏的规格是否固定的?以后其他机型是否会有变化?

公告针对上述机型手机,不针对后续机型。后续机型凹型屏的大小、尺寸、位置可能变化。

2)凹型屏是否有统一处理逻辑?

目前在设置 – 显示 – 应用全屏显示 – 凹形区域显示控制,里面有关闭凹形区域开关,用户可通过这个关闭凹形区域避免遮挡(原则可参考google android P 设计说明)。

3)后续是否会兼容Android P?

Google Android P 会有标准的API获取凹形屏,后续会按照标准API提供适配方案,并兼容老方案。

6. 如何适配全面屏手机

根据谷歌兼容性(CTS)标准要求,应用必须按以下方式中的任意一种,在AndroidManifest.xml中配置方可全屏显示,否则将以非全屏显示。

方式一:配置支持最大高宽比

* <meta-data android:name="android.max_aspect"  android:value="ratio_float" />

* 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”

建议采用方式二适配支持全面屏。

详见官方文档:https://source.android.google.cn/compatibility/cdd?hl=zh-cn


7 兼容OPPO沉浸式

这里介绍通过设置窗口全屏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);
相关文章
|
4月前
|
Linux Android开发 iOS开发
基于.Net开发的ChatGPT客户端,兼容Windows、IOS、安卓、MacOS、Linux
基于.Net开发的ChatGPT客户端,兼容Windows、IOS、安卓、MacOS、Linux
69 0
|
5月前
|
Android开发
Android 全屏适配刘海机型
Android 全屏适配刘海机型
|
6月前
|
Android开发
Android Studio 控制台中文乱码,解决方案都在这里了,完美解决
Android Studio 控制台中文乱码,解决方案都在这里了,完美解决
|
10天前
|
人工智能 安全 Android开发
OPPO召开AI战略发布会,联发科天玑芯构建AI手机时代计算底座
近期,OPPO举办AI战略发布会,会上正式推出了由OPPO AI超级智能体与AI Pro智能体开发平台共同构建的OPPO 1+N智能体生态战略。与此同时,OPPO与联发科展开深度合作,展示了双方在AI手机领域的创新成果,以共同推进“AI手机(AI Smartphone)”的发展,为广大用户带来更为智能、便捷和高效的下一代AI体验。
|
7月前
|
IDE Java 开发工具
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8的解决方案
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8的解决方案
|
6月前
|
小程序 JavaScript API
支付宝小程序集成mqtt兼容IOS和安卓
支付宝小程序集成mqtt兼容IOS和安卓
121 0
|
6月前
|
小程序 JavaScript API
支付宝微信小程序连接蓝牙兼容IOS和安卓(开源)
支付宝微信小程序连接蓝牙兼容IOS和安卓(开源)
78 0
vue--ios手机input点击手机输入键盘顶起页面解决方案
vue--ios手机input点击手机输入键盘顶起页面解决方案
|
6月前
|
存储 缓存 前端开发
Android Github 上面优秀的两种阴影方案,完美兼容高低版本问题
Android Github 上面优秀的两种阴影方案,完美兼容高低版本问题
|
3天前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题

相关产品

  • 云迁移中心