Ale*_*ohn 24 android android-manifest android-screen-support
最近的博客解释说我们必须使用
<meta-data android:name="android.max_aspect" android:value="2.1" />
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest.xml的<application>元素中,可在超宽屏设备上实现最佳显示效果,例如Samsung Galaxy S8.
为了验证这一点,我安装我的应用程序(不max_aspect,没有resizeableActivity标志; targetSdkVersion=22,compileSdkVersion=24)在Android 7.1.1.仿真器具有自定义2960x1440分辨率.所有活动,包括身临其境,填充屏幕没有边距,如博客文章中所示.
我明确地补充道
<meta-data android:name="android.max_aspect" android:value="1.5" />
Run Code Online (Sandbox Code Playgroud)
这对模拟器也没有影响.
所以,问题是:这个元标志只在真实设备上检查过,还是我的模拟器错过了一些配置?
更新:我试图联系引用博客文章的作者Neto Marin.我发现了一条引以为傲的推文
关于他对全球Android Dev社区的贡献,但无法得到他的回答.
如果你的android:resizeableActivity不正确,android.max_aspect只会有所不同.如果你的应用程序的目标API是24或更高,android:resizeableActivity设置为true.
注意:如果活动的android:resizeableActivity属性设置为true,则无需设置最大宽高比.如果您的应用以API级别24或更高为目标,则此属性默认为true.有关更多信息,请参阅为多窗口模式配置应用程序.
请参阅文档.
Letterboxing 发生在不同的设备上,例如 Samsung S8、LG G6、Pixel 2 XL等。它似乎是 Android 8 尤其是 8.1 的一部分。
Android 8.1官方兼容性定义包括以下段落:
[C-0-1] Configuration.uiMode 设置为 UI_MODE_TYPE_NORMAL 的设备实现的宽高比值必须介于 1.3333 (4:3) 和 1.86(大约 16:9)之间,除非应用可以被视为已准备好进行拉伸满足以下条件之一即可延长:
- 该应用程序已通过android.max_aspect元数据值声明支持更大的屏幕宽高比 。
- 应用程序通过android:resizeableActivity属性声明它可以调整大小。
- 该应用程序的目标是 API 级别 26 或更高级别,并且没有声明 会限制允许的宽高比的android:MaxAspectRatio 。
请注意,前两个属性是应用程序级别的,而后一个属性属于 Activity。
一些供应商允许最终用户进一步控制这一点。LG 有“应用程序缩放”菜单;三星允许您在“显示”设置中选择“全屏应用程序”。
| 归档时间: |
|
| 查看次数: |
6962 次 |
| 最近记录: |