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一起
为对我们共同而言十分重要的用户们
奉上体验更极致的产品
有任何问题欢迎在评论区留言
▽
经典回顾



更多资讯请长按二维码
关注“vivo开发者”