如何创建layout-small-land文件夹?

12

我想在我的资源目录中为布局创建单独的文件夹,就像这样:

layout-land
layout-port

这个没问题,但是这个:

layout-small-land
layout-small-port
或者
layout-land-small
layout-port-small

结果为:“无效的资源目录名称”

怎么回事?

4个回答

5

您可以指定屏幕密度而不是像大号或小号那样的尺寸。

例如:

layout-port-hdpi 
layout-port-ldpi 
layout-port-mdpi 
layout-port-nodpi 

layout-land-hdpi 
layout-land-ldpi 
layout-land-mdpi 
layout-land-nodpi 

以下是更多信息的链接:https://developer.android.com/guide/topics/resources/resources-i18n.html#AlternateResources 对于使用Large、Medium、Small,这是方法:
res/layout/my_layout.xml            // layout for normal screen size
res/layout-small/my_layout.xml      // layout for small screen size
res/layout-large/my_layout.xml      // layout for large screen size
res/layout-large-land/my_layout.xml // layout for large screen size in landscape mode

那么为什么会有屏幕方向选项小/正常/大呢?顺便说一下,我的目标是1.6。 - codedeziner
largesmall是有效的资源集后缀。请参见您上面链接页面上表2标题后的第三行。 - CommonsWare
编辑了我的回答,它们都是使用文件夹名称中的大或小等有效方法。 - Donal Rafferty

5

layout-small-landlayout-small-port是正确答案,我已经成功编译。也许你的目录结构出了问题。


1
结果发现我的应用程序针对的是 1.5 版本,而不是 1.6 版本。一旦我更改了目标,编译就正常了。感谢您澄清文件夹名称应该适用于我。 - codedeziner
啊,没错,直到1.6版本之后才出现了“-small”和“-large”资源集后缀。 - CommonsWare

1
直到文件夹为空,它会给你一个"无效资源错误"。如果你填充了它与.xml文件(它们必须在每个布局-限定符文件夹中完全匹配),它就不会出错。
例如: layout-port ---> mainscreen.xml layout-large-port ---> mainscreen.xml
这样就可以了。

0

我在网上没有找到其他引用此结构的内容,但以下博客文章展示了一个例子,作者使用了ldpi(我相信也有mdpi和hdpi),而不是小号、正常和大号(正如安卓在线参考文档所建议的)。请看下面的链接,或许可以尝试这个结构:

http://android.amberfog.com/?p=276


在这个页面的中间部分: http://developer.android.com/guide/practices/screens_support.html 有一个使用layout-large-land的示例。考虑到小/正常/大和纵向/横向是选项,我想知道为什么我不能使用它们。 - codedeziner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接