5

我创建了一个适用于 nexus 7 的 android 应用程序。在资源文件夹中,我为 Nexus 7" 选项卡创建了两个文件layoutlayout-land。为此,我使用layout-large&创建了资源内的文件夹layout-large-land。但是,这是问题所在。现在,对于 Nexus 7,layout-large文件夹中定义的布局也正在加载。如何停止这种情况?如何为 Nexus 7 创建不同的布局“标签和 Galaxy S3 手机?我已阅读Supporting Multiple Screens文档。但我无法理解 Nexus 7 的屏幕尺寸是 1204 X 800 而三星 Galaxy S3 的屏幕尺寸是 720 X 1280。

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

4

4 回答 4

10

根据支持的多屏在此处输入图像描述

限定符如small,normal和is for large,这意味着 Nexus 7 将使用带有限定符的资源(如果您提供)。因此,在您使用限定符创建文件夹之前,Nexus 7 将从默认布局文件夹加载资源。至于, ,是屏幕密度。xlargeScreen Sizeslargelargeldpimdpihdpixhdpi

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

  1. 将 Galaxy S3 的布局定义放入 layout,将 layout-sw600dp 放入 Nexus 7。请参考 Android 开发者博客:让您的应用为 Jelly Bean 和 Nexus 7 做好准备

  2. 将 Galaxy S3 的资源(图像或可绘制的东西)放入 drawable-xhdpi 和 Nexus 7 的 drawable-tvdpi 或 drawable-hdpi。

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

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

什么布局适合 720x1280 的 Android 设备?

屏幕宽度限定符

于 2012-10-10T10:28:00.697 回答
0

您还需要一个用于 xlarge 和 xlarge-land

或者您可以通过调用以编程方式执行此操作:

Display displayparm= activity.getWindowManager().getDefaultDisplay();
int width= displayparm.getWidth();
int Height= displayparm.getHeight();

并从此信息中选择布局

于 2012-10-10T09:44:56.010 回答
0

您可以通过在res文件夹下添加新文件夹作为layout-xlargelayout-xlarge-large来创建布局,并且您还必须更新 android manifest 文件以支持更高分辨率

于 2013-05-06T09:59:33.057 回答
0

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

于 2013-09-01T09:18:07.207 回答