App显示不全屏

最近遇到2个app,在分辨率1920x1080屏上右侧和下侧各有一黑条,用window的各种隐藏title, actionbar的主题都无法消除,用android device monitor一看,

最顶层的view边界只有1875x1008

一问度娘,说是在application里配置


<meta-data

   android:name="android.max_aspect"

   android:value="2.1" />


就可以

测试一下,自己写的app可以这么做,但第三方app就无法修改了。

跟一下代码,有个初始值PackageParser.DEFAULT_PRE_O_MAX_ASPECT_RATIO = 1.86

于是将它改成2.1,bingo

原理:

字面意思:MAX_ASPECT_RATIO:最大外观比例,也就是宽高比,2.1 = 2280/1080, 1.86 = 2008/1080

app安装时解析manifest时将max_aspect初始化到ActivityIntentInfo.maxAspectRatio中

并在ActivityRecord根据maxAspectRatio计算activity的边界。


最近做了一个条形屏的项目,很多App就之在左边显示一点,右边一大片都是黑屏的可以这样修改


frameworks/base/services/core/java/com/android/server/am/ActivityRecord.java

- final float maxAspectRatio = info.maxAspectRatio;

+ final float maxAspectRatio = 0;//158*2880 UI full screen

————————————————

版权声明:本文为CSDN博主「zhaoyufei133」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zhaoyufei133/article/details/128498577