【发布时间】:2018-05-09 00:43:03
【问题描述】:
我想为尺寸为 5.99 英寸或更小的手机和平板手机设置一个正常布局,当它变成 6.0 英寸时,我的布局文件夹会发生变化。
我尝试过 layout-large,但它包含 5 到 7 英寸,xlarge 为 +7.1。我的最低 API 是 7。
【问题讨论】:
标签: android multiscreen
我想为尺寸为 5.99 英寸或更小的手机和平板手机设置一个正常布局,当它变成 6.0 英寸时,我的布局文件夹会发生变化。
我尝试过 layout-large,但它包含 5 到 7 英寸,xlarge 为 +7.1。我的最低 API 是 7。
【问题讨论】:
标签: android multiscreen
没有办法在 Android 中设置一个覆盖所有 6.0 英寸以上屏幕的截止点。 Android 不以这种方式区分大小。
最正确的方法是使用normal/large/xlarge 限定符。这些将由设备制造商指定,因此您将使用与制造商期望相对应的布局来支持设备。但不幸的是,您会在large 类别中看到一些 5-7 英寸的屏幕,但不是全部。你会得到一些 xlarge 与 large 的结果,这可能是你意想不到的。
您绝对应该阅读 Android 关于支持多种屏幕尺寸的指南:http://developer.android.com/guide/practices/screens_support.html
现在,如果您想更好地控制何时使用不同的布局资源,还有其他一些选项。 sw<N>dp、w<N>dp 或 h<N>dp 可能会根据您的要求工作。对您来说不幸的是,这些限定符是在 API 13 中添加的。但好消息是您担心的大多数平板电脑和平板设备都是 13+,您只需要确保可以优雅地进行故障转移。
例如,layout-sw600dp 应该涵盖大部分 7 英寸以上的平板电脑。你可以做一个较小的 dp 来尝试让你的平板电脑,或者一个更大的 dp 来覆盖你更大的平板电脑。您将无法在屏幕中准确指定 5.99 和 6.0,因为不同的设备将具有不同的宽度、高度和像素密度。但这将比normal 与large 更接近。
您可以在此处获取资源限定符的完整列表: http://developer.android.com/guide/topics/resources/providing-resources.html
【讨论】: