我正在为Android平板电脑开发应用程序。我已多次阅读Google's guide,但有些事情似乎并不合适:
我一直在Genymotion的谷歌Nexus 10(10.1'')上测试应用程序。昨天我买了一台9.7''平板电脑在真实设备上进行测试,但界面就好像我将Android Studio布局预览设置为Nexus 9(8.9'')。
所以我猜到了这一点:
xlarge
。 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' (是的,他们没有得到同等对待)。
我该如何命名?
答案 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的布局将放在640dp
和res/layout/
等目录中。您的800dp或更大的布局将放在res/layout-land/
。
我已经尝试了几个答案,说要将文件夹重命名为/ layout-sw768dp /,但它们不起作用。
您可能希望考虑编辑您的问题并解释“它们不起作用”的含义。