0

我想知道在为 android 设备设计 UI 时,您认为哪种策略更好。

你更喜欢哪个:

  1. 设置 XML 文件中元素的大小,对于每个密度(和需要时的大小),仅使用一组图像(xxhdpi 图像),在需要时将缩小​​。

    优点 - 较小的应用程序(较少的资源) UI 人员在图像上的工作较少。

    缺点 - 在 XML 文件上做更多的工作(有时很多)

  2. 大多数时候使用 Wrap_content 为每个密度(和大小,如果需要)创建图像。

    优点 - 只有一组 XML 布局文件。

    缺点 - 更多图像和更大尺寸的 apk。更多为 UI 人员处理图像的工作。

您还使用了哪些其他方法?

谢谢!

4

2 回答 2

2

我认为您误解了 Android 在缩放您不提供的图像时所做的事情。Android 文档状态:

默认情况下,Android 会缩放您的位图可绘制对象(.png、.jpg 和 .gif 文件)和九补丁可绘制对象(.9.png 文件),以便它们在每个设备上以适当的物理尺寸呈现。例如,如果您的应用程序仅为基线、中等屏幕密度 (mdpi) 提供位图可绘制对象,则系统在高密度屏幕上时会放大它们,而在低密度屏幕上时会缩小它们。这种缩放会导致位图中出现伪影。为确保您的位图看起来最好,您应该包含针对不同屏幕密度的不同分辨率的替代版本。

这意味着,如果您不提供图像的替代密度版本,Android 将使用您提供的图像填充缺失的图像(创建的和正确的比例大小),但会以图像质量为代价,因为Android 不会像 Photoshop 那样缩放图像。如果您关心应用程序的大小,您可以考虑是否可以接受因省略某些密度版本而导致的图像质量损失,以使您的 .apk 更小。

因此,#1 和#2 都可以使用wrap_content,并且都不必手动设置图像的大小,除非图像需要大于或小于原始大小(在这种情况下,您应该只在右侧创建图像尺寸)。#1 也不需要也不应该需要更多的布局工作。对于#2,以多种尺寸保存图像根本不是额外的工作。

我个人遵循以下规则:

  1. 为每个密度创建图像(除了ldpi/ tvdpi-设备太少,我可以接受它们的图像质量损失)。
  2. 根据需要使用wrap_content图像match_parent
  3. dp用于运行时下载的图像,无法保证大小。
于 2013-05-08T18:36:00.930 回答
0

我的选择是混合的。我为那些复杂且有可能自动压缩异常的图像创建不同的图像。但是对于通常的图像,我只使用了第一种方法。

于 2013-05-08T17:54:43.603 回答