gpt4 book ai didi

Android 处理多个屏幕...(相对布局或线性布局)?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:22:25 24 4
gpt4 key购买 nike

我已经完成了我的应用程序,现在需要处理适应多种屏幕尺寸。

在这一点上,我唯一的选择似乎是执行以下操作:

有一个单独的 xml 布局:小、正常、大和 X 大屏幕尺寸。
在其中有一个单独的 xml 布局:ldpi、mdpi、hdpi 和 xhdpi
在其中有一个单独的 xml 布局,用于纵向和横向。

也就是说,一项 Activity 共有 32 个布局。

我只是想知道是否有更好的方法来做到这一点,因为这会非常耗时,但是如果需要支持所有可能的设备,我不会介意。

我做了一些阅读,人们说使用线性布局并使用重力,因为这是一个百分比,所以它在所有屏幕上看起来都一样。或者我可以使用RelativeLayout 并使用“AlignAbove 或Below”等。

但是我的主要问题是尺寸错误,而元素的位置似乎通常在正确的位置。

有没有一种被广泛接受的方法来做到这一点?

我真的只是在寻找普通开发人员处理所有屏幕尺寸的“主流”方式。

最佳答案

好问题。但是你这样做不是“专业”开发人员会做的。一个 Activity 不需要 32 个布局,Android 足够智能来处理事情。

Without multi-definition of layouts/multi-definition of dimens.xml multi-device support possible or not?



是的,这是绝对可能的,这就是您应该做的。 为单个 Activity 布局定义 32 个布局并不是一件好事。

假设,我在 Play 商店中有一个相当大的应用程序,有 20 多个 Activity ,现在如果我为单个 Activity 定义了 32 个布局,那么我的应用程序将有 600 多个布局。 那可行吗? 问问自己吧。

你需要先给 this非常非常好的页面阅读。它几乎包含了您需要了解的所有内容。但我会帮你把事情做好。

You do not need to provide alternative resources for every combination of screen size and density. The system provides robust compatibility features that can handle most of the work of rendering your application on any device screen, provided that you've implemented your UI using techniques that allow it to gracefully resize



这句话足以让你相信你不应该这样做。 Android 系统足够智能,可以相应地调整布局大小。 相信我,它真的很好。

As you design your UI for different screen sizes, you'll discover that each design requires a minimum amount of space. So, each generalized screen size above has an associated minimum resolution that's defined by the system. These minimum sizes are in "dp" units—the same units you should use when defining your layouts



我将尝试指出您需要考虑的一些重要事项。
  • 永远不要在布局中硬编码像素
  • 始终使用 dpsp在您的布局中。顾名思义,它们是 与不同设备的密度无关 ,所以在每个设备中看起来都一样。
  • 始终使用 wrap_contentmatch_parent用于高度和宽度
  • 永远不要使用 AbsoluteLayout
  • RelativeLayoutLinearLayout两者都适合您,您只需要根据情况决定要使用哪一种
  • 始终提供不同版本的可绘制对象 适用于不同的屏幕尺寸。这是你不能跳过的。如果你不这样做,你的布局不仅会在不同的设备上看起来很糟糕,而且会让你的应用程序消耗不必要的资源。
  • 虽然单一布局也适用于平板电脑,但由于表格的屏幕尺寸比一般手机大得多,你应该只为他们提供单独的布局。

  • Android Studio 富布局编辑器

    Android Studio 有一个很棒的布局编辑器,您可以在其中即时预览您的布局。看看下面这个截图,

    enter image description here

    我正在以各种屏幕尺寸同时预览我的应用程序的特定屏幕和 我的布局看起来就像我想要的那样,在所有这些中 .

    对于此 Activity ,我只有两种布局,一种适用于所有手机,一种适用于所有平板电脑。

    实践经验

    如果您想要实际体验,我有一个在 Play 商店上运行的应用程序,它被成千上万的用户在 8000 多种不同屏幕尺寸的不同设备上使用。

    我只有 2 个特定 Activity 的布局 ,一种用于手机,一种用于平板电脑。我的应用程序的 UI 在所有设备上看起来都不错,我从未收到任何用户的提示。如有需要, here是应用程序的链接。

    我相信这个详细的答案可以澄清您的所有疑问,如果没有,请随时告诉我。我很乐意提供进一步的帮助。

    UDPATE

    我会再次尝试清除您的困惑。但首先我会 推荐你阅读我的回答 不止一次。

    您需要一种或两种布局, 这一切都取决于您正在设计的特定布局 .所有布局都与其他布局不同。 它不能在技术上被定义为它的主观性。 它没有拇指规则。但我会尽量帮助你正式。

    你需要好好利用 Android Studio 富布局编辑器 及其令人敬畏的实时预览功能。
  • 首先尝试设计针对任何平均设备尺寸(例如 5 英寸的 Nexus 5)的布局。只需选择 Nexus 5 即可预览您的布局。
  • 一旦您对设计感到满意,请选择其他屏幕尺寸进行预览。您还可以像上面的屏幕截图一样选择“预览所有尺寸”。
  • 尝试查看您的布局在所有屏幕尺寸(从 4 英寸到 10 英寸平板电脑)中是否看起来都不错。查看间距、图像大小、字体大小是否都正确。
  • 从 4 英寸到 6 英寸的所有手机通常都有完美的预览,但您可能需要为平板电脑屏幕单独设计另一种布局(因为它们足够大)。只有这里需要 2 种布局,但并非总是如此。

  • 就像在我的应用程序中一样,我有 2 个单独的布局,仅用于 5-6 个 Activity ,但对于其余的我只有一个布局。这一切都取决于特定的布局。

    设计与编程完全不同。 编程可以形式化、语法化,但设计不能 .设计绝对是主观的,取决于设计师的观点。 以自己的方式发挥创意,这就是设计的魅力 .

    关于Android 处理多个屏幕...(相对布局或线性布局)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10971535/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com