如何为android中每个不同的屏幕尺寸定义dimens.xml?

新手上路,请多包涵

Android 中支持不同的屏幕尺寸(密度)时,重点通常是为每个可能的屏幕创建不同的布局。 IE

  • 低密度脂蛋白
  • mdpi
  • hdpi
  • xhdpi
  • xxhdpi
  • xxxhdpi

我为 xhdpi 屏幕设计了一个布局作为参考,并在 dimens.xml 中定义了它的 尺寸。现在 我想为每一个可能的屏幕尺寸提供支持。我怎样才能做到这一点?

据我所知,我可以使用 这个 工具来找出适合其他屏幕尺寸的 dimens.xml 并将其添加到我的项目中。在我的情况下,这是正确的方法吗?

另一个问题, 我只需要为以上屏幕尺寸创建 dimens.xml 吗?如果是,那么 w820dp 是什么?

谢谢你的帮助。我 只需要支持手机(不是平板电脑或其他设备)。

原文由 Amit Pal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 563
2 个回答

您必须 为不同的屏幕创建不同的值文件夹。喜欢

values-sw720dp          10.1” tablet 1280x800 mdpi

values-sw600dp          7.0”  tablet 1024x600 mdpi

values-sw480dp          5.4”  480x854 mdpi
values-sw480dp          5.1”  480x800 mdpi

values-xxhdpi           5.5"  1080x1920 xxhdpi
values-xxxhdpi           5.5" 1440x2560 xxxhdpi

values-xhdpi            4.7”   1280x720 xhdpi
values-xhdpi            4.65”  720x1280 xhdpi

values-hdpi             4.0” 480x800 hdpi
values-hdpi             3.7” 480x854 hdpi

values-mdpi             3.2” 320x480 mdpi

values-ldpi             3.4” 240x432 ldpi
values-ldpi             3.3” 240x400 ldpi
values-ldpi             2.7” 240x320 ldpi

在此处输入图像描述

欲了解更多信息,您可以访问这里

android中的不同值文件夹

http://android-developers.blogspot.in/2011/07/new-tools-for-managing-screen-sizes.html

@humblerookie 编辑

您可以使用名为 Dimenify 的 Android Studio 插件根据自定义比例因子自动生成其他像素桶的尺寸值。它仍处于测试阶段,请务必将您遇到的任何问题/建议通知给开发人员。

原文由 IntelliJ Amiya 发布,翻译遵循 CC BY-SA 3.0 许可协议

在代码中获得更多灵活性的基本原则是封装正在变化/变化的内容(或极有可能发生变化的内容)。

如果您的机箱尺寸发生变化。因此,您首先将尺寸(您认为需要更改的尺寸)从 XML 代码或 java/kotlin 代码移动到文件 values/dimens.xml

对于这个问题的上下文。您可能拥有密度限定符或小宽度限定符的 res 文件夹。

 values/dimens.xml
values-ldpi/dimens.xml
values-hdpi/dimens.xml

values/dimens.xml
values-sw320dp/dimens.xml
values-sw320dp/dimens.xml


这里要注意的重要一点是 values/dimens.xml 中的项目将应用于小于您指定的最低断点的屏幕。

 values/dimens.xml //smallest screen
values-sw320dp/dimens.xml //320dp or more till next breakpoint folder
values-sw360dp/dimens.xml//360dp or more till next breakpoint folder

另一个需要注意的重要一点是,高像素密度设备可能具有小屏幕。 因此,请确定您是要指定密度限定符还是屏幕宽度限定符。


为那些不熟悉这方面的人提供一些进一步的简报。

您可以将限定符添加到不同的资源文件夹,例如值、可绘制对象和布局。

这些限定符可以表示一种语言 (-en,-hi)、一个方向 (-land,-port) 或屏幕尺寸范围 (-ldpi,-hdpi)。

命名约定具有限定符层次结构,并且限定符必须仅按该顺序添加。

     values-en-hdpi (it cannot be values-hdpi-en)
    values-en-land-hdpi (it cannot be values values-hdpi-en-land or any other order)
layout-hdpi

该订单记录在 此页面的表 2 中

一些限定符代表绝对值,而其他限定符如 ldpi、hdpi 代表断点。

原文由 Sandeep Dixit 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题