如何正确自定义和组织布局文件夹(大小)?

时间:2018-08-16 17:16:40

标签: android android-layout

我已经在一些具有不同尺寸的设备中测试了我的应用,最后我的风格变得糟糕。我已经阅读了一些有关文件夹布局和大小的文档,用于自定义不同尺寸手机的布局。

因此,根据我已阅读的内容,我将以下几行添加到清单中。

    <supports-screens
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens= "true"
    android:anyDensity="true"
    />

并将布局内容复制到其他已创建的文件夹中,

layout-large
layout-small
layout-xlarge
layout-xlarge-land

并开始编辑其中一个以查看结果,但是什么也没发生,并且设计是相同的,所以我认为我可能被设计为错误的xml文件夹,因此在另一本教程的基础上,我添加了另一个文件夹,{ }并且它起作用了,但现在出现了问题,所有内容都显示为320dp文件夹,无论大小,都没有关系。在设计视图中,所有文件夹均为手机型号,尺寸更改为:

layout-sw320dp

那是什么原因呢?这些具有Nexus One -> sw320dp\*.xml Pixel -> sw320dp\*.xml small名称的布局文件夹的大小分别是多少?以及如何使这种布局正常工作?

看起来我的文件夹实际上与确切的尺寸无关,除穿戴Android外,所有尺寸的320都被覆盖。

2 个答案:

答案 0 :(得分:2)

swXXXdp资源修饰符意味着,如果设备的“最小宽度”为XXX dp 或更大,则将选择此文件夹。因此,如果您具有以下两个目录:

res/layout/
res/layout-sw320dp/

然后,任何最小宽度为319dp或更小的设备将使用layout/文件,任何最小宽度为320dp或更大的设备将使用layout-sw320dp/文件。几乎每个设备的大小都为320dp或更高,因此您会看到几乎每个设备都使用此文件夹。

现代手机的最小宽度通常约为400dp。您始终可以在线查找屏幕规格。例如,https://www.gsmarena.com/google_pixel_2-8733.php表示Pixel 2为1080px宽,每英寸441像素;得出391dp(1080 /(441/160))。

swXXXdp修饰符的公共截止点是7英寸平板电脑为600dp,十英寸平板电脑为720dp。因此,您可能需要这样的项目结构:

res/layout/            <-- everything smaller than a 7" tablet
res/layout-sw600dp/    <-- 7" tablets
res/layout-sw720dp/    <-- 10" tablets

但是请注意,您可以使用任何所需的数字。 sw503dp是完全有效的。您只需要选择适合您的布局的数字即可。

对于layout-largelayout-small等,只要忽略它们即可。这些已过时,并且在添加swXXXdp限定符之前已使用。除非您要开发非常老的API版本,否则最好只使用swXXXdp

答案 1 :(得分:0)

您将以大写字母layout开头的Layout-large名称。用小写字母替换这些字母(例如:layout-...),这样就可以。