android 支持不同的屏幕
Supporting different screens for android
这是我第一次使用多个屏幕。我想为多个屏幕构建我的应用程序,即从 sw320dp
到 sw720dp
。我创建了以下布局文件夹。
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_parent
或 layout_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 中添加)。
这是我第一次使用多个屏幕。我想为多个屏幕构建我的应用程序,即从 sw320dp
到 sw720dp
。我创建了以下布局文件夹。
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_parent
或 layout_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 中添加)。