支持不同布局的不同设备

Posted

技术标签:

【中文标题】支持不同布局的不同设备【英文标题】:Supporting different devices with different layout 【发布时间】:2015-08-08 13:55:13 【问题描述】:

我对其他设备的布局表示怀疑,我的意思是支持不同分辨率的不同设备。我制作了一个应用程序,它在 hdpi 设备上运行良好,我在三星 Galaxy grand 上进行了测试,它具有 320dp-460dp 和 480px-800px。

May 应用程序在此设备上看起来很棒。但是当我在其他设备上运行时,它就坏了。所以建议我制作像 layout-large、layout-xlarge 和 layout-xxlarge 这样的文件夹,但this 链接和this 链接有很多区别

所以这让我很困惑,我必须使用哪个名称来制作布局文件夹以支持所有设备?请告诉我

还告诉我,我的布局中有一些硬编码值,例如左边距 13 dp,以使我的设计在 hdpi 设备上看起来更完美,我应该在其他 xhdpi 设备上做得更多吗???

还有哪些设备在 layout-large 文件夹中等等,请回答我的困惑,提前谢谢

【问题讨论】:

制作一个特定的布局文件夹来支持特定的尺寸并不意味着你的应用不能在其他尺寸上运行。这只是意味着您的应用在这种特定尺寸上会更好地工作。 阅读official docs android: support multiple screens的可能重复 我知道它会起作用,但我想知道我必须使用哪个名称来制作文件夹? 您为什么担心哪个设备属于某个类别?只需提供为正确密度文件夹缩放的资源,就可以了。自动地。好吧,您可能需要调整一些尺寸,并始终使用 dps 和 sps。但基本上,你已经很好了。 【参考方案1】:

我以 Google 的代码为例来说明如何做事。 “支持多屏幕”上的文档有点陈旧和过时。跟上当前惯例的最佳方法是遵循其他人的代码。

Here 是日历应用程序的源代码。是的,布局/drawable/values 有很多不同的文件夹,但您必须考虑一个事实,即有很多设备具有不同的尺寸和像素密度。

另外,为什么要为布局创建许多文件夹?您制作了一些布局,然后让值和可绘制对象完成其余的工作。希望对您有所帮助。

【讨论】:

所以你说我只需要制作单个布局文件,然后在 dimens 文件夹中提供边距?是吗? 是的,基本上就是这样。 你能告诉我我应该为设备的哪个维度和结果使用哪个名称, 就像有人说在布局文件夹中制作了 layout-small 和 layout-large 那么我应该为维度文件夹制作什么以及如果我想支持所有设备我必须制作多少 请查看:android.googlesource.com/platform/packages/apps/Calendar.git/+/…【参考方案2】:

如果您有兴趣了解哪个设备属于哪个文件夹,请查看Official Android Guide 中的此图:

当然你需要知道物理设备的实际尺寸或密度

【讨论】:

那么告诉我怎么做? “当然你需要知道物理设备的实际大小或密度”

以上是关于支持不同布局的不同设备的主要内容,如果未能解决你的问题,请参考以下文章

如何在情节提要中使用自动布局在不同设备尺寸上设置动态位置的约束

Android 布局问题 - 在不同设备上显示不同。

不同设备尺寸的 iOS 自动布局约束值

如何在android中为不同的设备和方向创建不同的布局[重复]

不同设备上的按钮布局更改

与设备相比,我在 android 中的布局预览显示不同