我想在Android中为平板电脑和手机创建不同的布局。我应该在哪里放置布局资源以实现这种差异化?
答案 0 :(得分:147)
我知道这是一个老问题,但为了它... 根据{{3}},你应该像这样创建多个资产文件夹
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)
答案 1 :(得分:39)
如果你在代码中使用Fragment概念(意味着多窗格布局)那么最好使用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
答案 2 :(得分:23)
对于布局,我相信您目前只能通过以下方式进行区分:
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中得到解决。否则,您只需确保使用适用于任何屏幕尺寸的缩放布局。
答案 3 :(得分:2)
根据文档,您应该创建多个资产文件夹,例如this..full list ......
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)
答案 4 :(得分:0)
This source还提供了如何根据设备配置调用任何资源,例如:语言,屏幕宽度/高度,布局方向,屏幕方向等。
您必须小心使用默认资源作为提到的来源,例如为平板电脑调用高质量的图标。
答案 5 :(得分:0)