大部分利用标准 UI 模块的 App 都会灵活适配不同的屏幕。官方文档对这方面也作出了详细的解释。但是,开发者可能要花多一点心思去适配很多游戏或 App 里的自定义界面。其中一个比较普遍的问题是对于屏幕纵横比作出错误的假设。以下列出几项比较典型的问题,以作参考。
屏幕的上下、左右边缘可能会被裁剪,导致 UI 整体看起来不完整。
触摸点击区和 UI 模块(如:按钮)不对齐,从而困惑用户。
在圆角屏幕设备上的全屏模式,任何非常靠近角落的 UI 元素都可能位于弯曲的可视角度区域之外。假设一个电商 App 的 “下单” 功能受到类似问题的影响,这就是一个大问题了。建议大家参考 Material Design 指南,在布局上留下大概 16dp 的边缘空间。
如果响应式 UI 不适合您的场景,作为最后一步,考虑按照以下方式声明最大支持纵横比。 在特长屏幕的设备上,兼容模式会将应用边缘的显示空间以填充。
针对 API level 26 或以上: 利用 android:maxAspectRatio 属性。
针对 API level 25 或以下: 利用 android.max_aspect meta-data。
需要注意的一点是最大支持纵横比的值只对不支持 resizableActivity 的 Activity 才有效。
请参阅文档的细节:
https://developer.android.google.cn/guide/practices/screens_support.html#MaxAspectRatio