什么尺寸最适合用于图像:background.png、background@2x.png 和 background@3x.png 如果我们想使用这个图像来覆盖所有分辨率下的屏幕的全宽和半高iPhone人像应用程序?
这就是我们现在所拥有的:
Device Points Pixels Scale Physical Pixels PPI Ratio Size
iPhone XS Max 896x414 2688x1242 3x 2688x1242 458 19.5:9 6.5"
iPhone XR 896x414 1792x828 2x 1792x828 326 19.5:9 6.1"
iPhone X 812x375 2436x1125 3x 2436x1125 458 19.5:9 5.8"
iPhone 6 Plus 736x414 2208x1242 3x 1920x1080 401 16:9 5.5"
iPhone 6 667x375 1334x750 2x 1334x750 326 16:9 4.7"
iPhone 5 568x320 1136x640 2x 1136x640 326 16:9 4.0"
iPhone 4 480x320 960x640 2x 960x640 326 3:2 3.5"
iPhone 3GS 480x320 480x320 1x 480x320 163 3:2 3.5"
有人说,对于 iPhone 6 Plus 的边到边图像(如屏幕底部从左到右边缘的横幅),他们会准备宽度为 1242 的 back@3x.png 和宽度为 1242 的 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 和宽度为 414px 的 back.png。然而,这意味着在除 iPhone 6 Plus 之外的每部 iPhone 上,您都需要设置您的 uiimages 以使用例如方面适合内容模式,并且它们将被调用,因此这又不是一个完美的解决方案,并且可能会真正减慢应用程序,如果我们在旧设备上使用了很多 scalling。
那么你认为解决这个问题的最佳方案是什么?
最佳答案
如果不使用,您不必拥有所有比例的每个图像。仅制作您需要的尺寸并根据其宽度命名。对于纵向全设备宽度图像,1x 和 2x 时需要 320px 宽,2x 时需要 375px 宽,3x 时需要 414px 宽。
4"设备使用“-568h”后缀来命名它们的启动图像,因此我建议使用类似的命名方案:
然后弄清楚你在运行时需要什么图像:
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/25969533/