如何正确包含10"和7"布局

ber*_*tom 40 layout android dpi tablet

Nexus 7:7"1280x800

Galaxy tab 10.1 10"1280x800

我想让我的应用程序在7英寸和10英寸平板电脑上运行.据我所知,我必须在我的应用程序中包含这些布局文件夹:

用于7英寸平板电脑

  • 布局sw600dp
  • 布局sw600dp端口

用于10英寸的片剂

  • 布局sw720dp
  • 布局sw720dp端口

它在nexus 7上运行良好,但在10英寸平板电脑上加载sw600dp布局.

如果我包含这些默认文件夹:

  • 布局
  • 布局端口

10"galaxy tab从这些加载布局.

如果我只包含默认布局文件夹和sw600dp文件夹,它会在nexus7上崩溃.

如果10英寸星系标签不能加载sw720p布局,我该如何支持手机,7英寸平板电脑和10英寸平板电脑?

编辑:格式化

ber*_*tom 58

问题是,我没有默认的布局文件夹.

我试过,仅使用sw600dp和sw720dp文件夹.我仍然不知道为什么他们不工作,但我不在乎.我无论如何都不能使用swxxxdp <3.2,所以搞砸了.

因此,如果你想编写一个应用程序,必须支持手机(2.2 +),7英寸平板电脑和10英寸平板电脑,请使用以下oldschool的东西:

布局这是默认设置,即使您不打算支持手机也需要它!

layout-large for 7"平板电脑(适用于模拟器和nexus7)

layout-xlarge for 10"平板电脑(适用于模拟器和galaxytab10.1)

其他人也得出了同样的结论.


Chi*_*hod 21

我在申请中也遇到了这样的问题.但我找到了一个很好的解决方案.我只有一个布局tablet和目录名称layout-sw600dp.现在,当一部分来到了高度和宽度的问题,我已经创建了几个不同的values,其中我把目录dimensionsfont size等存根.因此平板电脑屏幕没有任何constant价值layout.

androd:layout_width:"60dp" // i drop this scenario

androd:layout_width:"@dimen/tab_width" // i used this scenario
Run Code Online (Sandbox Code Playgroud)

你的values目录名就像

values-xlarge
values-large
Run Code Online (Sandbox Code Playgroud)

所有值都将从您的values目录中获取.它不会创建不同的布局,但可以多次使用一个布局.

以下是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).
Run Code Online (Sandbox Code Playgroud)

使用表2中的大小限定符,您的应用程序可以使用您想要的任何数字宽度和/或高度在手机和平​​板电脑的不同布局资源之间切换.例如,如果600dp是平板电脑布局支持的最小可用宽度,则可以提供以下两组布局:

res/layout/main_activity.xml#对于手机
res/layout-sw600dp/main_activity.xml#对于平板电脑

===

在这里,你可以看到,1280*720的布局是layout-sw720dp如此,而不是创建layout-normal-xlarge你应该使用这个东西,让你来决定差异.而不是使用layout-large-mdpi和识别不同layout-large-ldpi,你不仅仅是通过它识别smallest width?因为,android drawables为不同的图像提供目录,唯一的东西就是它的分辨率.你有上面的解决方案.

编辑

然后你必须开发不同的布局.别无选择.我在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)
Run Code Online (Sandbox Code Playgroud)