【问题标题】:Which 3 size/resolution images to upload in image set to support all devices?要在图像集中上传哪 3 张尺寸/分辨率的图像以支持所有设备?
【发布时间】:2019-08-05 04:57:30
【问题描述】:

图片资源现在优先于 IOS 中的资源,它只支持上传 3 个版本的图片。 1 倍、2 倍和 3 倍。

但 iPhone 支持多种设备分辨率

640x1136 - 5 系列
750x1334 - 6、6s、7、8
1242x2208 - (6, 6s, 7, 8) 加
1125x2436 - X, XS
828x1792 - XR
1242x2688 - XS Max

我可以理解什么是 1x、2x 和 3x 分辨率,例如。 320 像素(1x)、640 像素(2x)和 960(3x)。

但我不明白要上传哪 3 种图像尺寸以支持所有设备,以便完整的图像在所有设备上全屏显示?

【问题讨论】:

    标签: ios xcode assets


    【解决方案1】:

    分辨率为 1x、2x 和 3x。在大多数情况下,您应该缩放图像的大小,例如 1x 是 100x100,2x 是 200x200,3x 是 300x300

    这与分辨率无关,而是与 DPI 比例有关。这是您从UIScreen.main.scale 获得的值。这是您的坐标系和碎石像素坐标系之间的比例。例如,如果您使用分辨率为 750x1334 的 2x 设备并打印出帧,您将通过检查 UIApplication.shared.keyWindow!.frame 得到 375x667

    这意味着,如果您将帧大小为 100x100 的图像视图放在 2x 设备上,它将占用 200x200 像素。对于 3 倍,它将占用 300x300 像素。这就是为什么 2x 和 3x 图像应该更大的原因。

    如果您想根据屏幕尺寸直接缩放图像,则会出现此问题。假设如下:

    let imageWidth: CGFloat = 44.0/375.0*view.frame.size.width

    如果这用于图像大小,那么您的图像将根据您的屏幕大小按比例调整大小。这样做你需要一个比拥有 3 个版本更好的图标系统。您可以将它们放入资产中,每个屏幕分辨率有 3 张图像。

    但在大多数情况下,最好保持图像大小并增加其周围的空白。所以假设一个宽度为 375 的屏幕中间会有一个宽度为 100 的图像。它将在每一侧产生 137,5 个空格。现在在宽度为 414 的设备上看到相同的场景会在哪一侧产生 157 个空白。这通常是可以接受的。

    如果您确实需要缩放图像,您还应该考虑缩放字体。如果您的一个图标的大小增加了 10%,那么它旁边的文本很可能应该将字体大小增加 10%。由于将字体大小四舍五入为整数值,这可能会在以后使事情变得非常复杂。所以我建议你避免这种情况。

    【讨论】:

    • 感谢您抽出宝贵时间详细解释!正如我提到的,我可以理解 1x、2x 分辨率/dpi。我知道如果尺寸是 414x896,2x 是 828x1792,3x 是 1242x2688。但是有很多尺寸需要支持。我有一个没有文字的纯图像,所以我可以在这 3 个框中上传什么尺寸,以便它在所有设备上显示相同而没有尖端,这是我的问题。
    • @MukeshModhvadiya 正如所说,这取决于。如果您使用的是图标之类的东西,那么您的目标应该是使这些尺寸相对于 1x 比例乘以 2 或 3。但是,如果您有类似背景的东西,并且您希望分辨率像素完美,那么您需要为您支持的每个分辨率提供 3 张图像。当然,最好只有一张可以适合所有屏幕的图像;您可以将内容模式设置为 scaleAspectFill 以填充整个背景而不会扭曲图像。如果您需要查看整个图像,或者 scaleAspectFit...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多