我在我的应用程序中也面临这样的问题。但我为此找到了一个很好的解决方案。我只有一种布局tablet
,目录名称是layout-sw600dp
. 现在,当部分涉及高度和宽度问题时,我创建了几个不同values
的目录来放置dimensions
和font size
其他存根。所以平板屏幕没有任何constant
价值layout
。
androd:layout_width:"60dp" // i drop this scenario
androd:layout_width:"@dimen/tab_width" // i used this scenario
你的values
目录名称会像
values-xlarge
values-large
所有值都将从您的值目录中获取。它不会创建不同的布局,但一个布局可以多次使用。
以下是Developer.android
网站的话。配置示例
为了帮助您针对不同类型的设备进行一些设计,以下是典型屏幕宽度的一些数字:
320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
使用表 2 中的尺寸限定符,您的应用程序可以使用您想要的任何宽度和/或高度数字在手机和平板电脑的不同布局资源之间切换。例如,如果 600dp 是您的平板电脑布局支持的最小可用宽度,您可以提供以下两组布局:
res/layout/main_activity.xml # 对于手机
res/layout-sw600dp/main_activity.xml # 对于平板电脑
===
在此,您可以看到 1280*720 的布局在下面,因此您应该使用这个让您决定差异的东西,layout-sw720dp
而不是创建。layout-normal-xlarge
而不是使用layout-large-mdpi
and进行不同的识别layout-large-ldpi
,您不只是通过它来识别smallest width
吗?因为,androiddrawables
为不同的图像提供目录,唯一的就是它的分辨率。你有上述解决方案。
编辑
然后你必须开发不同的布局。没有其他选择。我在http://jamil.fluidsoul.net/2011/03/06/creating-android-applications-for-multiple-screen-sizes找到了。
Low density Small screens QVGA 240x320 (120dpi):
layout-small-ldpi (240x320)
layout-small-land-ldpi (320x240)
Low density Normal screens WVGA400 240x400 (x432) (120dpi):
layout-ldpi (240 x 400 )
layout-land-ldpi (400 x 240 )
Medium density Normal screens HVGA 320x480 (160dpi):
layout-mdpi (320 x 480 )
layout-land-mdpi (480 x 320 )
Medium density Large screens HVGA 320x480 (160dpi):
layout-large-mdpi (320 x 480 )
layout-large-land-mdpi (480 x 320)
Galaxy Tab ( 240 dpi ):
layout-large (600 x 1024)
layout-large-land (1024 x 600)
High density Normal screens WVGA800 480x800 (x854) (240 dpi):
layout-hdpi (480 x 800)
layout-land-hdpi (800 x 480)
Xoom (medium density large but 1280x800 res) (160 dpi):
layout-xlarge (800 x 1280)
layout-xlarge-land (1280 x 800)