zoukankan      html  css  js  c++  java
  • Android全面屏适配

    什么是全面屏

    概念

    很多人可能把全面屏跟曲面屏混淆,其实这是两个不同的概念。

    一般手机的屏幕纵横比为16:9,如1080x1920、1440x2560等,其比值为1.777777……,全面屏手机出现之前,Android中默认的最大屏幕纵横比(maximum aspect ratio)为1.86,即能够兼容16:9的屏幕。

    一些手机厂商为了追求更大的屏幕空间以及更极致的用户体验,于是提高了屏幕纵横比,17:9、19:10、18:9、18.5:9的手机开始进入市场,这些手机被称为全面屏手机。

    目前市面上的全面屏机型

    机型屏幕纵横比上市时间
    小米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也将采用全面屏的设计。

    如何适配

    为什么要适配全面屏

    虽然目前市面上全面屏手机还不多,但随着小米、华为、三星、苹果的加入,势必引起全面屏手机的爆发,因此适配全面屏手机成为必要。

    由于全面屏手机的纵横比比之前大,如果不适配的话,Android默认为1.86,小于全面屏手机的纵横比,在全面屏手机上打开App时,上下就会留有空间,显示为黑条。虽不影响功能,但极其影响视觉体验,另外全面屏提供的额外空间也没有得以利用。

    适配前后的示例图(来自Android官方博客):

    这里写图片描述

    官方适配方案

    在Galaxy S8发布之后,Android官方提供了适配方案,即提高App所支持的最大屏幕纵横比,实现很简单,在AndroidManifest.xml中可做如下配置:

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

    其中ratio_float为浮点数,官方建议为2.1或更大,因为18.5:9=2.055555555……,如果日后出现纵横比更大的手机,此值将会更大。

    另外如果没有上述设置,android:resizeableActivity 也为false的话,则应用所支持的最大纵横比为默认值1.86,即默认无法支持全面屏。

    官方指导文档为 Update your app to take advantage of the larger aspect ratio on new Android flagship devices

    小米适配建议

    小米作为国内最早发布全面屏手机的厂商,也为开发者提出了一些适配建议。除了按上述方法适配屏幕之外,还建议对虚拟导航栏进行适配,主要是为了界面色调的一致性体验。更多信息可参考 全面屏及虚拟键适配说明

  • 相关阅读:
    wx.showToast 延时跳转~~~
    wx.request 获取不到post传递的值
    G,sql中select 如果太长,可以在后面放G,竖行显示~~~~
    用for语句从数组中剔除数据,注意,count,要放到for语句之外才行
    读代码还是读文档,来自知乎
    聊聊我对写好程序的认识
    open() 函数以 r+ 模式打开文件
    open()
    Python 流程控制:while
    Python 序列
  • 原文地址:https://www.cnblogs.com/lianghui66/p/8962394.html
Copyright © 2011-2022 走看看