gpt4 book ai didi

ios - 如何处理所有可用 iPhone 分辨率上的图像比例?

转载 作者:行者123 更新时间:2023-11-30 13:36:31 25 4
gpt4 key购买 nike

如果我们想使用此图像来覆盖屏幕的全宽和半高,那么什么尺寸最适合图像:background.png、background@2x.png 和background@3x.png iPhone 肖像应用程序的所有分辨率?

这就是我们现在拥有的:

Device                        Points   Log. Res.  Sc. Real Res.  PPI  Ratio   Size
iPhone 12 Pro Max, 13 Pro Max 926x428 2778x1284 3x 2778x1284 458 19.5:9 6.7"
iPhone 12, 12 Pro, 13, 13 Pro 844x390 2532x1170 3x 2532x1170 460 19.5:9 6.1"
iPhone 12 mini, 13 mini 812x375 2436x1125 3x 2340x1080 476 19.5:9 5.4"
iPhone XS Max, 11 Pro Max 896x414 2688x1242 3x 2688x1242 458 19.5:9 6.5"
iPhone XR, 11 896x414 1792x828 2x 1792x828 326 19.5:9 6.1"
iPhone X, XS, 11 Pro 812x375 2436x1125 3x 2436x1125 458 19.5:9 5.8"
iPhone 6+, 6S+, 7+, 8+ 736x414 2208x1242 3x 1920x1080 401 16:9 5.5"
iPhone 6, 6S, 7, 8, SE2 667x375 1334x750 2x 1334x750 326 16:9 4.7"
iPhone 5, 5S, 5C, SE1 568x320 1136x640 2x 1136x640 326 16:9 4.0"
iPhone 4, 4S 480x320 960x640 2x 960x640 326 3:2 3.5"
iPhone 3GS 480x320 480x320 1x 480x320 163 3:2 3.5"

iPhone resolutions

有人说,对于 iPhone 6 Plus 的边到边图像(例如屏幕从左到右边缘底部的横幅),他们会准备宽度为 1242 的 back@3x.png,对于 iPhone 6 back@2x .png 宽度为 750 以匹配 iPhone 6 屏幕尺寸,但我不认为这是一个好主意,因为 1242/3 = 414 和 750/2 = 375 因此将它们命名为 @2x 和 @3x 没有意义。那么 back.png 的宽度应该是多少 - 375 还是 414?

图形名称使用 @2x 和 @3x 后缀,因此如果 image@3x.png 的分辨率为 30x30,那么逻辑上 image@2x.png 的分辨率应为 20x20,而 image.png 的分辨率应为 10x10。这意味着,如果我们希望每个屏幕都有清晰的全宽图像,那么我们可能应该创建宽度为 4143=1242px 的 back@3x.png、宽度为 4142=828px 的 back@2x.png和 back.png 宽度为 414px。然而,这意味着在除 iPhone 6 Plus 之外的每部 iPhone 上,您都需要设置 uiimages 以使用例如宽高比适合内容模式,并且它们将被调低,因此这又不是一个完美的解决方案,并且可能会真正减慢应用程序的速度,如果我们在旧设备上使用了大量的缩放功能。

那么您认为解决这个问题的最佳解决方案是什么?

最佳答案

如果不使用每个图像,则不必拥有所有比例的图像。只制作您需要的尺寸并根据宽度命名。对于全设备宽度的纵向图像,1x 和 2x 时需要 320px 宽,2x 时需要 375px 宽,3x 时需要 414px 宽。

4"设备使用“-568h”后缀来命名其启动图像,因此我建议采用类似的命名方案:

  • ImageName-320w(@1x 和 @2x)
  • ImageName-375w (@2x)
  • ImageName-414w (@3x)

然后找出运行时需要什么图像:

NSNumber *screenWidth = @([UIScreen mainScreen].bounds.size.width);
NSString *imageName = [NSString stringWithFormat:@"name-%@w", screenWidth];
UIImage *image = [UIImage imageNamed:imageName];

如果将来添加其他宽度,这可能会中断,但到目前为止,Apple 一直要求重建应用程序以支持新的显示器,因此我想可以放心地假设他们会继续这样做。

关于ios - 如何处理所有可用 iPhone 分辨率上的图像比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36004945/

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