Android刘海屏、水滴屏全面屏适配方案(1)

本文介绍了Android应用如何适配刘海屏和水滴屏,包括在Android 9.0及以上及Android O设备上的适配方法,涉及到最大长宽比设置、DisplayCutout类和华为特定解决方案。适配主要目的是防止内容被屏幕凹口遮挡,确保应用在不同全面屏设备上的良好显示。
摘要由CSDN通过智能技术生成

链接:https://www.jianshu.com/p/2b8db60ba8df

市面上的屏幕尺寸和全面屏方案五花八门。

这里我使用了小米的图来说明:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上述两种屏幕都可以统称为刘海屏,不过对于右侧较小的刘海,业界一般称为水滴屏或美人尖。为便于说明,后文提到的「刘海屏」「刘海区」都同时指代上图两种屏幕。

当我们在谈屏幕适配时,我们在谈什么

  1. 适应更长的屏幕
  2. 防止内容被刘海遮挡

其中第一点是所有应用都需要适配的,对应下文的声明最大长宽比

而第二点,如果应用本身不需要全屏显示或使用沉浸式状态栏,是不需要适配的。

针对需要适配第二点的应用,需要获取刘海的位置和宽高,然后将显示内容避开即可。

声明最大长宽比

以前的普通屏长宽比为16:9,全面屏手机的屏幕长宽比增大了很多,如果不适配的话就会类似下面这样:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

黑色区域为未利用的区域。

适配方式

适配方式有两种:

  1. 将targetSdkVersion版本设置到API 24及以上

这个操作将会为<application> 标签隐式添加一个属性,android:resizeableActivity="true", 该属性的作用后面将详细说明。

  1. <application> 标签中增加属性:android:resizeableActivity="false"

同时在节点下增加一个meta-data标签:

原理说明

这里涉及到的知识点是android:resizeableActivity属性。

在 Android 7.0(API 级别 24)或更高版本的应用,android:resizeableActivity属性默认为true(对应适配方式1)。这个属性是控制多窗口显示的,决定当前的应用或者Activity是否支持多窗口。

多窗口支持

在清单的<activity><application>节点中设置该属性,启用或禁用多窗口显示:

android:resizeableActivity=[“tr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值