支持最大屏幕宽高比而无硬编码比例?

时间:2017-04-29 08:26:50

标签: android

原则上,我的应用程序不知道屏幕的宽高比(因为它应该适用于Android应用程序)。现在,recommended的做法是手动添加

<meta-data android:name="android.max_aspect" android:value="ratio_float" />
由于智能手机屏幕的趋势,纵横比高于默认支持的比率1.86,因此

进入清单。我的问题是,有没有更好的方式告诉Android 我不关心什么是最大宽高比,而不是设置硬编码比例,例如2.1。

如果不是,我可以设置任意高的值,例如3.1甚至5.1吗?这样做是否安全?我不是在谈论异国情调的奇怪屏幕尺寸,而是主流未来屏幕以及未来处理这种情况的最佳做法。谢谢

2 个答案:

答案 0 :(得分:2)

正如您在Android Developers Blog上看到的那样,他们也提示resizableActivity

  

注意:如果您没有设置值,并且android:resizeableActivity不成立,则最大宽高比默认为1.86(大约16:9),您的应用不会利用额外的屏幕空间。

因此,您应该将android:resizeableActivity="true"添加到您的活动或应用程序中。 documentation也声明了

  

如果此属性设置为true,则可以在分屏和自由格式模式下启动活动。

似乎自由格式是你关心的。

答案 1 :(得分:0)

如果我们想要支持API上的高宽高比屏幕&lt;大卫的回答是正确的。 24(在牛轧糖之前)。然而,展望未来,文档说默认为{24}及以上版本android:resizeableActivity为真。这意味着该应用程序将来会自动自由形式(如果我错了,请纠正我)。考虑到Galaxy S8已经开启了Nougat,我说没有必要担心你的应用程序是否可以采用自由形式。

编辑:如果你的targetSdkVersion是&lt; 24然后你应该使用David的解决方案,因为对于安装了Nougat(或更高版本)的手机操作系统,自由格式不会自动启动。