android华为手机全屏显示

版权声明: https://blog.csdn.net/xu_coding/article/details/82889782
  • 最近发现很多应用在第一次安装之后,都会提示一个 【 全屏显示】 。一看,好像也没啥,但是对开发应用的开发者来说。感觉被打了一巴掌一样。自己好好编码完成的应用。出来个这个是什么鬼。想解决这个问题,却好像也不知道从何下手(根本不知道这问题怎么造成的)。根据华为官方的说法。目前这个问题。在Top1000的应用中,目前也只有35%的应用适配了这个问题。也就说常用的应用中,大多数都没有解决这个问题。
  • 其实这个问题,是从全面屏造成的。说到全面屏。我们先看下全面屏和普通屏的区别:
    普通屏:纵横比为16:9,如1080x1920、1440x2560等,其比值为1.78,全面屏手机出现之前,Android中默认的最大屏幕纵横比(maximum aspect ratio)为1.86,即能够兼容16:9的屏幕。
    全面屏:屏幕比例超过1.86的屏幕,比如:17:9、18:9、19:9、19.5:9 等这些比例的屏幕都是全面屏。

当设备屏幕足够大时,如华为Mate10Pro、三星S8,除去导航栏应用显示尺寸的纵横比还是大于1.86的,为了满足Google CDD的要求,应用就无法按之前的全屏进行显示,就会出现黑边。

下面提供三种解决方法:

  1. 方法1: 在AndroidManifest.xml中的Application节点下添加 如下代码
<meta-data android:name="android.max_aspect" android:value="2.4" />
  1. 方法2:
    在AndroidManifest.xml中对应的Activity中添加属性 android:resizeableActivity =“true”
    需要注意的是:此设置只针对Activity生效,且增加了此属性该activity也会支持分屏显示。
  2. 方法3:
    修改AndroidManifest.xml文件,设置targetSdkVersion>=26,就是应用升级到O版本,不需要设置其他任何属性,默认在任何纵横比的屏幕都能全屏显示。(备注:有一种例外情况需要注意,应用如果已经适配到O版本,并且通过meta-data属性android.max_aspect或者是android:MaxAspectRatio属性设置了页面支持的最大纵横比,同时又通过android:resizeableActivity=“false”设置了页面不支持分屏,这个时候系统会按照应用自己设置的最大纵横比决定该页面是否能全屏显示,如果应用设置的最大纵横比比手机屏幕比例小,那应用还是无法全屏显示。)

如果方法3代价比较大,(实际上现在所有的应用市场都在提高SdkVersion的版本。有时间,有精力还是弄一下吧),就使用方法1吧。

猜你喜欢

转载自blog.csdn.net/xu_coding/article/details/82889782