不少人可能把全面屏跟曲面屏混淆,其实这是两个不一样的概念。html
通常手机的屏幕纵横比为16:9,如1080x1920、1440x2560等,其比值为1.777777……,全面屏手机出现以前,Android中默认的最大屏幕纵横比(maximum aspect ratio)为1.86,即可以兼容16:9的屏幕。android
一些手机厂商为了追求更大的屏幕空间以及更极致的用户体验,因而提升了屏幕纵横比,17:九、19:十、18:九、18.5:9的手机开始进入市场,这些手机被称为全面屏手机。app
机型 | 屏幕纵横比 | 上市时间 |
---|---|---|
小米MIX | 17:9 | 2016年10月 |
LG G6 | 18:9 | 2017年2月 |
Samsung Galaxy S8 | 18.5:9 | 2017年5月 |
Essential Phone | 19:10 | 2017年8月 |
另有确切消息华为下半年将会发布全面屏的手机,传说中的iPhone8也将采用全面屏的设计。google
虽然目前市面上全面屏手机还很少,但随着小米、华为、三星、苹果的加入,势必引发全面屏手机的爆发,所以适配全面屏手机成为必要。spa
因为全面屏手机的纵横比比以前大,若是不适配的话,Android默认为1.86,小于全面屏手机的纵横比,在全面屏手机上打开App时,上下就会留有空间,显示为黑条。虽不影响功能,但极其影响视觉体验,另外全面屏提供的额外空间也没有得以利用。设计
适配先后的示例图(来自Android官方博客):code
在Galaxy S8发布以后,Android官方提供了适配方案,即提升App所支持的最大屏幕纵横比,实现很简单,在AndroidManifest.xml中可作以下配置:xml
<meta-data android:name="android.max_aspect" android:value="ratio_float"/>
其中ratio_float为浮点数,官方建议为2.1或更大,由于18.5:9=2.055555555……,若是往后出现纵横比更大的手机,此值将会更大。htm
另外若是没有上述设置,android:resizeableActivity
也为false的话,则应用所支持的最大纵横比为默认值1.86,即默认没法支持全面屏。blog
官方指导文档为 Update your app to take advantage of the larger aspect ratio on new Android flagship devices。
小米做为国内最先发布全面屏手机的厂商,也为开发者提出了一些适配建议。除了按上述方法适配屏幕以外,还建议对虚拟导航栏进行适配,主要是为了界面色调的一致性体验。更多信息可参考 全面屏及虚拟键适配说明。