2010-11-15 102 views
58

片,我想创建一个在Android平板电脑和手机不同的布局。我应该在哪里放置布局资源以实现差异化?布局Android中

+2

平板电脑是移动设备所以两者之间没有什么区别。 – Rene 2011-06-24 13:30:18

回答

121

我知道这是一个老问题,但对于它的缘故... 据documentation,你应该如果您使用的片段理念,在代码中创建多发的资产文件夹,这样

res/layout/main_activity.xml   # For handsets (smaller than 600dp available width) 
res/layout-sw600dp/main_activity.xml # For 7” tablets (600dp wide and bigger) 
res/layout-sw720dp/main_activity.xml # For 10” tablets (720dp wide and bigger) 
+0

哇感谢。每个使用哪个可绘制的文件夹? – Si8 2013-08-18 09:41:52

+0

我需要为Nexus 9和Nexus 10设备创建哪些布局文件夹? – 2015-06-15 10:26:54

+0

尝试将Nexus 10内容移动到sw800dp的文件夹中。 Nexus 9将继续从sw768dp文件夹中获取线索 – 2016-06-29 13:43:15

22

有了布局,我相信你可以通过下面的目前唯一的分辩:

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 

你可以找到你可以添加到文件夹结构,不同的设置here区分更多的信息。

最大的问题是,Android的SDK还没有真正纳入正式的片剂。希望这将在下一个Android版本中得到解决。否则,您只需确保使用适用于任何屏幕尺寸的缩放布局。

+0

我认为问题不在于SDK。例如,手机屏幕尺寸480x800 hdpi就足够用于平板电脑布局。如果您的应用在平板电脑布局方面效果最佳,那么在这种情况下,用户无需使用平板电脑,仍然有其优势。所以不需要区分平板电脑/手机。您指出的链接完美地解决了这个问题。谢谢。 – 2012-05-31 01:30:07

+0

这是支持以下的Android 3.2 – 2015-12-03 09:25:02

34

(意味着多窗格布局),那么它的最好WDP使用,而不是SWDP

res/layout-w600dp/main_activity.xml # For 7” tablets (600dp wide and bigger) 
res/layout-w720dp/main_activity.xml # For 10” tablets (720dp wide and bigger) 
res/layout-w600dp-land/main_activity.xml # For 7” tablets in landscape (600dp wide and     bigger) 
res/layout-w720dp-land/main_activity.xml # For 10” tablets in landscape (720dp wide and bigger) 

请参考表了解WDP

Table 2. New configuration qualifers for screen size (introduced in Android 3.2). 在下面的链接 http://developer.android.com/guide/practices/screens_support.html

0

This source还提供如何调用基于设备的配置,如同任何资源:语言,屏幕宽度/高度,布局方向,屏幕取向...等。

你已经要小心做出默认资源如前所述,像呼唤平板电脑的图标高品质的源泉。

0

根据文档,你应该建立多发的资产文件夹一样this..full名单...... res/layout/main_activity.xml // For handsets (smaller than 600dp available width) res/layout/main_activity.xml // For handsets (smaller than 600dp available width) res/layout-sw600dp/main_activity.xml // For 7” tablets (600dp wide and bigger) res/layout-sw720dp/main_activity.xml // For 10” tablets (720dp wide and bigger) res/layout-sw600dp-land/main_activity.xml // For 7” tablets in landscape (600dp wide and bigger) res/layout-sw720dp-land/main_activity.xml // For 10” tablets in landscape (720dp wide and bigger)