如何为10''创建两个单独的布局?和9.7''平板电脑?

时间:2015-06-06 18:50:12

标签: android android-layout android-studio screen-size

我正在为Android平板电脑开发应用程序。我已多次阅读Google's guide,但有些事情似乎并不合适:

我一直在Genymotion的谷歌Nexus 10(10.1'')上测试应用程序。昨天我买了一台9.7''平板电脑在真实设备上进行测试,但界面就好像我将Android Studio布局预览设置为Nexus 9(8.9'')

所以我猜到了这一点:

  • 超过10''被视为xlarge
  • 少于10岁''被视为large

所以我将所有布局都移到/layout-xlarge-land/ 并开始设计一个新的适合我的9.7''平板电脑,并放入/layout-large-land/,基于8.9'' Nexus 9(看起来与我的9.7''完全相同)

但令我惊讶的是,Android Studio(或者实际上只是Android)同时处理8.9'' (= 9.7'')和10''为large

我已经尝试了几个答案,说要将文件夹重命名为/layout-sw768dp/,但它们无法正常工作。

所以我需要两个文件夹:一个用于10''平板电脑和另一个用于9.7' (是的,他们没有得到同等对待)。

我该如何命名?

1 个答案:

答案 0 :(得分:1)

  

我需要两个文件夹:一个用于10''平板电脑,另一个用于9.7''

这些都不是有意义的数字,因此没有办法为他们提供不同的资源。它们没有意义,因为它们没有考虑宽高比。并非所有Android设备都具有相同的宽高比:有些是16:9,有些是16:10,有些是4:3,有些是1:1,有些是完全不同的。 10“,9.7”和亲属主要用于营销目的。

这与网页设计没有什么不同,在网页设计中,设计师不会在浏览器窗口的对角线维度方面说话。

出于技术目的,虽然您可以使用遗留的-large / -xlarge种限定符,但大约四年前它们被-w / -h / {取代了{1}}限定符:

  • -sw表示仅应在当前宽度为-w640dp(即4英寸)或更大的设备上使用的资源,您可以在此处提供您想要的数字640

  • 640dp表示仅应在当前高度为-h640dp或更大的设备上使用的资源(同样,可自定义值)

  • 640dp表示仅应在最小宽度(任意方向)为-sw640dp或更大的设备上使用的资源(在横向中,“最小宽度”实际上是当前高度)

这使您可以像Web设计人员在CSS样式表中使用媒体查询一样根据特定的高度和宽度更改CSS规则。

现在,既然没有人知道你认为9.7“用户界面以及你认为10”用户界面的内容,那么没有人可以真正帮助你将其整合到一组布局规则中,或者为你提供可行的限定符值。您需要根据当前宽度,当前高度或最小宽度自行确定分割线的位置。让我们假装你选择800dp当前宽度作为你的分界线。您的小于800dp的布局将放在640dpres/layout/等目录中。您的800dp或更大的布局将放在res/layout-land/

  

我已经尝试了几个答案,说要将文件夹重命名为/ layout-sw768dp /,但它们不起作用。

您可能希望考虑编辑您的问题并解释“它们不起作用”的含义。