android 支持不同的屏幕

Supporting different screens for android

这是我第一次使用多个屏幕。我想为多个屏幕构建我的应用程序,即从 sw320dpsw720dp。我创建了以下布局文件夹。

res/layout-sw320dp
res/layout-sw360dp
res/layout-sw480dp
res/layout-sw600dp
res/layout-sw720dp

我已经复制了这些文件夹中的所有 xml 文件。我还需要添加什么来确保所有布局都支持多个屏幕吗?我已经阅读了 android 文档,但我不清楚 manifest.xml 部分。如果有人在他们的应用程序中实现了多屏幕支持,那么请提供相同的描述和实现。

嘿,你不需要在清单中做任何事情。 您已经完成了布局部分。 接下来你可以做的是在可绘制文件夹中添加支持,即不同尺寸的不同密度图像。

如果不同的屏幕需要不同的值(尺寸等),您需要在值中创建多个文件。

第 1 步 - 您必须为不同屏幕的不同值创建不同的值文件夹。 转到你的项目/app/src/main/res。 右键单击 res 并在其中创建不同的值文件夹。

步骤 - 2. 创建名为 大值 值小 值-sw320dp 值-sw320dp-hdpi 值-sw320dp-xhdpi 值-sw320dp-xxhdpi 值-sw480dp 值-sw600dp 值-sw720dp 步骤 - 3. 在值文件夹中创建 dimensions.xml 文件。 不同屏幕尺寸的不同值。

values-ldpi                     2.7" 240*320 ldpi
values-ldpi                     3.3" 240*400 ldpi
values-ldpi                     3.4" 240*432 ldpi

values-mdpi                     3.2" 320*480 mdpi

values-hdpi                     4.0" 480*800 hdpi
values-hdpi                     3.7" 480*854 hdpi

values-xhdpi                    4.7" 1280*720 xhdpi
values-xhdpi                    4.65" 720*1280 xhdpi

values-sw480dp                  5.1" 480*800 mdpi
values-sw480dp                  5.4" 480*854 mdpi

values-sw600dp                  7.0" tablet 1024*600 mdpi

values-sw720dp                  10.1" tablet 1280*800 mdpi

当您将 dimension.xml 文件附加到您的布局时,您将直接影响您的屏幕尺寸。 这将帮助您为所有类型的屏幕设置尺寸。

支持 多种屏幕尺寸和为每种屏幕尺寸创建不同的 layout.xml 文件之间存在差异。

在我开发过的所有应用程序中,我们实际上只关心三种不同类型的屏幕:小型手机(我们的用户没有升级的旧设备),"regular"手机(例如现代三星或 LG 手机等)和平板电脑。即使考虑到这三种屏幕,我们通常也不需要为单个屏幕创建超过一个 layout.xml 文件。

如果您只有一个 layout.xml 文件,它会在任何屏幕尺寸上自行显示。对于 "support" 多种屏幕尺寸,您只需要确保您的内容在短手机和高手机、宽手机和窄手机、手机和平板电脑等上看起来都不错。这通常归结为使用尺寸,例如match_parentlayout_weight 填充可用 space,等等

只有当您真正需要更改屏幕上的元素(相对于元素有多大)时,您需要创建额外的 layout.xml 个文件。例如,您可能知道某组文本 + 图像不适合较小的手机。然后,您可以创建一个仅包含文本的 res/layout/layout.xml,以及另一个包含文本 + 图像的 res/layout-sw360dp/layout.xml。或者您可能有一些内容想要在平板电脑上并排显示,但您只想在手机上显示其中的一部分。然后你可以制作一个 res/layout/layout.xml 的普通内容和一个 res/layout-sw600dp/layout.xml 的平板电脑内容。

无论如何,当您决定想要为不同的屏幕尺寸制作多个版本的布局时,只需在不同的 layout-swXXXdp 文件夹中创建 layout.xml 的副本。不要为 layout-large 烦恼,除非你的应用程序支持真正老的 API 关卡; swXXXdp 方法更准确并解决了同样的问题(但仅在 API 13 中添加)。