【问题标题】:Why should we use xml layouts?为什么要使用 xml 布局?
【发布时间】:2015-04-29 22:53:26
【问题描述】:

经过几年的 Android 开发,我花了几个月的时间想知道为什么要使用 xml 布局来制作我的 Android 应用程序的 UI。

我了解 MVC 和实时图形界面设计的那一部分。

如果我错了,请让我摆脱无知并原谅我,但是,我无法准确地设置视图的位置,例如,边距为屏幕宽度的 8%,宽度为屏幕宽度的 70%。

以这种方式创建 UI 并注意屏幕纵横比可确保应用在所有设备上的外观比例完全相同。

正如this post 总结的那样,如果我们想支持不同的屏幕,我们被告知要为我们的应用程序的每个布局使用 dip 单位和一堆漂亮的 xml 文件。 (如果我们必须为每个屏幕密度设置不同,为什么他们称其为密度无关?)

但是,即使这样做,正如(再次)谷歌文档所说的那样

dp与像素的比例会随着屏幕密度而变化,但不一定成正比。

而不一定他们应该说大多数情况下从不查看数量惊人的不同设备。根据您的项目,这可能是一个问题。 (或者您是否希望您的客户在懂中文的设备上查看您“略微分解”的 UI)

我可以对图像资源提出相同的要求,但这可能是另一个问题,我习惯将最高分辨率放在 -nodpi 上,然后通过代码缩小到与屏幕宽度相关的所需大小,而不是完全放置 10.000 张图像决议。

【问题讨论】:

  • 这可能会有所帮助。 imgur.com/0QcNkz7
  • 您不需要使用 XML,请随意在运行时构建您的 UI。
  • 我知道这不是必需的,但它是 google 向我们展示的主要方式,我主要寻找不同的观点,说明为什么使用 xml 布局是最常见的模式设计。
  • @RafiduzzamanSonnet,系统根据密度桶缩放资源,您无法精确控制缩放图像的大小,而且,无论如何,我看不出有任何理由将每个图像放在不同的位置 8 次决议。

标签: android android-layout


【解决方案1】:

以这种方式创建 UI 并注意屏幕纵横比 确保应用在所有方面看起来都完全一致 设备。

这就是 Apple 的做法,这也是为什么当您在具有漂亮视网膜显示屏的 9.7 英寸 iPad 上打开一个文件夹时,它只显示 9 个图标。

平板电脑不仅仅是一部更大的手机。真的不是。此外,iOS 设备的纵横比几乎相同,因此它们是这样处理纵横比的。

但是,在 Android 上,您不能只说“解决了纵横比”问题,然后这个问题就神奇地消失了。最好的办法是使用 Android 最佳实践来正确处理纵横比。

话虽如此,但也不要过度。例如,您不需要使用所有 8 个密度桶。查看官方dashboard 了解人们实际使用的设备,然后再尝试针对每种可能的情况进行优化。

此外,您不必一直听 Google 的声音。例如,我确信 Google 会喜欢您翻译您的应用程序,以便它可以在全球超过 68 种以上的不同语言中使用,但对 Google 有利的不一定对您有利。 Android 实际上允许您选择要用于制作应用程序的工具。他们不会强迫您使用任何特定的。

【讨论】:

  • 所以主要优点是您可以为平板设备构建不同的 UI(以更简单的方式),而我的大多数项目都不需要。关于纵横比,它不会“神奇地”消失,但您可以考虑它并使您的 UI 在所有纵横比上看起来都很好。那么你认为值得制作(至少超过 1 个)xml 布局看是利还是弊?
  • 这真的取决于你的应用做什么。例如,如果它是一款公共交通实时跟踪应用程序,我就不会使用平板电脑,因为 99% 的观众可能会使用手机,而不是平板电脑。但我也不会费心制作一个比例外观的表格,我只会使用一个随着屏幕大小扩展和缩小的 ListView。所以在那种情况下,我只会使用一种 xml 布局。再说一遍,这完全取决于您的实际应用以及适合它的设计类型,而您还没有告诉我们。
  • 在我的大多数项目中,优先级 Nº1 是完美渲染的 UI,它必须在手机或平板电脑上看起来相同,当然大多数屏幕都比简单的列表视图复杂得多。如果他们在任何设备上看到任何屏幕元素的边距比应有的多一点,我的客户会抱怨。因此,对于该项目的需求,我认为通过代码创建 UI 比使用 xml 布局更好。
猜你喜欢
  • 2010-09-30
  • 1970-01-01
  • 2011-09-28
  • 2014-02-07
  • 1970-01-01
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多