新一代全面屏适配文档 —— VIVO官方

3,830 阅读6分钟
原文链接: mp.weixin.qq.com

vivo X21在乌镇发布啦

撒花~~~

不知道你们发现了一个套路没有

新的全面屏一出来

小编总要给各位奉上适配文档

这次的文档尤其······长

开发大哥放话了

长就长,文档很重要,一个字都不能删

emmm

这么重要的文档,了解一下?

1.

全面屏屏幕特征 

现在行业的全面屏,其特征主要体现在以下3个方面:

超长的屏幕——屏幕高宽占比大于19:9

屏幕具有圆角——圆角半径24DP

增加了凹槽——凹槽区域宽100DP,高27DP,状态栏高度32DP

应用在适配时,需要确保布局充满整个屏幕,充分体现全面屏的延展性,同时保证功能按钮,文字内容,重要标识等不要被机型圆角,凹槽区域遮挡。

注意:因边框较窄,避免设计过于靠近屏幕边缘的操作。在增加了导航条区域的情况下,同时也需要兼顾考虑可能出现误触的情况。

2.

屏幕布局及安全区域

全面屏屏幕由状态栏、导航条、安全区域3个部分组成。

屏幕中上有状态栏,下有底部导航条,在适配过程中,尽量不要考虑状态栏和底部导航条的高度,采用自适应布局的方式。(状态栏高度 ≥ 凹槽区域高度)

▪ 安全区域:将界面内容放置到该区域,可保证完整的视觉呈现,及更优的交互操作。

竖屏时,除去屏幕最顶部状态栏高度,底部导航条高度后,中间部分视为安全区域;

横屏时,除去屏幕左右两边凹槽区域宽度,中间部分视为安全区域,视觉需居中,注意横屏左右两侧凹槽区域(横屏避让区域),避免屏幕旋转凹槽部分对UI元素的影响。

3.

适配原则

▏长屏幕

不管是16:9、18:9,还是20:9的屏幕,都是指宽度不变的情况下,手机长度增加了, 这意味着相对于普通屏, 超长屏具有更高的高度。

适配长屏幕需要注意:

a. 确保界面充满整个屏幕,布局采用自适应,考虑不同的屏幕高度范围,充分体验全面屏的延展性;

b. 功能按钮,文字内容,重要标识等不要被遮挡,图像不要拉伸、变形;

c. 背景素材可以延展到整个屏幕,UI元素考虑到布局到整个界面的合适位置。

Google适配全面屏要求:

必须在AndroidManifest.xml声明以下meta-data,应用才可以全屏显示

<meta-data

android:name="android.max_aspect"android:value="ratio_float" />

或者

android:maxAspectRatio="ratio_float"(API LEVEL 26)

ratio_float为手机屏幕的高和宽的比例,如手机屏幕为2280×1080 19:9的分辨率,则ratio_float=19/9≈2.11,设置比该值大即可全屏显示。

在android 7.0以上Google默认支持了分屏模式,设置android:resuzeableActivity="true"同样可以让应用全屏显示。

▏圆角

适配圆角时,背景尽量填充整个屏幕,但是圆角区域不要遮挡可点击或可阅读的内容。

注意:横竖屏切换后,圆角不要遮挡内容。

▏凹槽区域 

▪ 竖屏:

应用无状态栏时,内容部分需避开凹槽区域,由背景填充凹槽区域,避让最小高度同状态栏高度。

▪ 横屏:

凹槽区域显示在屏幕侧边位置,需要考虑界面90°及270°旋转状态下的呈现效果。所有主要信息、操作按钮排布应在安全区域内,背景底图扩充至全屏。

4.

游戏适配

游戏的适配需注意以下两点:

a. 上下左右不要有黑边,内容填充整个屏幕。

b. 横屏时,凹槽区域排布在屏幕侧边,应用横屏时避免屏幕旋转凹槽区域对Ui元素的影响,主要内容,控件应排布在安全区域,背景底图延伸至全屏,确保主题内容在安全区域内。

5.

视频适配

凹槽屏幕显示比例远大于常规视频的比例(主流视频的比例为4:3或16:9),观看视频时,为了能给用户更好的全屏视觉体验,可以在播放界面提供切换视频显示比例的按钮,用于快速切换至全屏显示。

全屏显示有两种方式:

a. 拉伸至满屏:图像进行不等比放大,四边同时扩展至屏幕边缘。

b. 放大并裁切:图像进行等比放大,放大至上下左右均达到满屏,并裁切超出屏幕范围的内容。

6.

系统屏幕属性获取 

开发者在屏幕适配过程中,可能会关注系统的屏幕比例、圆角大小、是否有凹槽,在这里,对这部分内容做一个陈述。

▪ 屏幕比例

开发者在对全面屏适配时,尽量不要考虑具体的比例值,不管是16:9,18:9,还是20:9的屏幕,在布局时,采用相对布局特征——left、top、right、bottom类的布局方式,这样可以自适应屏幕的宽度和高度。

▪ 圆角大小

圆角大小的半径,固定设置小于50DP。但是开发者在适配过程中,也尽量不要考虑圆角的具体半径,只需考虑圆角遮盖的问题,尽量把内容布局到安全区域。如果一定要判断是否具有圆角,可以使用下文的例子通过反射来获取。

▪ 屏幕是否有凹槽

在vivo系统中,增加了一个接口来判断此设备是否具有凹槽,开发者可以使用反射的形式调用。

包名:android.util.FtFeature

接口:public static boolean is Feature

Support (int mask);

参数说明:

                0x00000020表示是否有凹槽;

                0x00000008表示是否有圆角

返回值:

                ture表示具备此特征;

                false表示没有此特性;

注意:一定要使用反射调用。

希望这篇文档可以帮助开发者做好适配工作

更希望各位开发者能和vivo一起

为对我们共同而言十分重要的用户们

奉上体验更极致的产品

有任何问题欢迎在评论区留言

经典回顾

音频类AudioManager接口使用中的7大坑!

Android 8.0适配最佳标配=适配指导+真机测试

vivo开发者平台更新关键词:用户画像

更多资讯请长按二维码

关注“vivo开发者”