如何为Galaxy S3和Nexus 7创建不同的布局?

时间:2012-10-10 09:30:32

标签: android android-layout android-screen

我创建了一个适用于nexus 7的android应用程序。 在内部资源文件夹中,我创建了两个文件夹,layoutlayout-land用于Nexus 7“标签。一切正常,直到日期。现在我想为三星Galaxy S3创建不同的布局。为此,我使用layout-large& layout-large-land在资源中创建了一个文件夹。但是,问题就出现了。现在,对于Nexus 7,layout-large文件夹中定义的布局也会被加载。要阻止它?如何为Nexus 7“tab& amp; amp; Galaxy S3手机?我已阅读Supporting Multiple Screens文档。但我无法理解,因为Nexus 7的屏幕尺寸是1204 X 800&三星Galaxy S3的屏幕尺寸为720 X 1280。

如何为具有不同屏幕分辨率的不同设备创建不同的布局&显示尺寸?此外,根据设备大小,我想在我的应用程序中更改几个值。怎么做那个?

4 个答案:

答案 0 :(得分:10)

根据Supporting Multiple Screens enter image description here

smallnormallargexlarge等限定词适用于Screen Sizes,这意味着Nexus 7将使用large的资源限定词,如果你提供。因此,在使用large限定符创建文件夹之前,Nexus 7将从默认布局文件夹中加载资源。对于ldpimdpihdpixhdpi用于屏幕密度。

要解决您的问题,您需要:

  1. 将Galaxy S3的布局定义放入布局,并将Nexus 7的布局-sw600dp放入。请参阅Android开发者博客:Getting Your App Ready for Jelly Bean and Nexus 7

  2. 将Galaxy S3的资源(图像或可绘制内容)放入drawable-xhdpi,并为Nexus 7放置drawable-tvdpi或drawable-hdpi。

  3. 希望它可以帮助你,如果你有任何其他问题,请告诉我:))

    以下是一些有用的参考资料:

    What layout is suitable for 720x1280 Android devices?

    Screen Width Qualifier

答案 1 :(得分:0)

你需要一个xlarge和xlarge-land以及

或者你可以通过调用:

以编程方式完成
Display displayparm= activity.getWindowManager().getDefaultDisplay();
int width= displayparm.getWidth();
int Height= displayparm.getHeight();

并从此信息中选择布局

答案 2 :(得分:0)

您可以通过在 res 文件夹下添加新文件夹作为 layout-xlarge layout-xlarge-large 来创建布局更新android清单文件以支持更高分辨率

答案 3 :(得分:0)

我开发了一个应用程序,我支持具有不同分辨率和密度的多个设备。 nexus 7和galaxy s3也是其中之一。如果您的项目中有layout-large文件夹,galaxy s3和nexus7显然会从大屏幕文件夹中获取。但是,Galaxy s3属于大型hdpi类别,而nexus7则属于大型类别。因此,如果你分别为s3和nexus7安装了layout-large-hdpi和layout-large-tvdpi,那将会很有用。