本帖最后由 test 于 2022-11-8 22:34 编辑
如何解决7p的逻辑分辨率和物理分辨率问题?
相关资料
iPhone分辨率总结[td]设备 iPhone | 屏幕尺寸 Screen Size | 逻辑分辨率 Point | 缩放因子Scale Factor | 设备分辨率 (Pixel) | 物理显示分辨率 (网站数据) | PPI 缩放因子和PPI对应 | 3GS | 3.5-inch | 320*480 | @1x | 320*480 | | 163 | 4/4S | 3.5-inch | 320*480 | @2x | 640*960 | | 326 | 5/5S/5C/SE | 4-inch | 320*568 | @2x | 640*1136 | | 326 | 6/6S/7/8 | 4.7-inch | 375*667 | @2x | 750*1334 | | 326 | 6P/6SP/7P/8P | 5.5-inch | 414*736 | @3x | 1242*2208 | 1080*1920 | 401 | X/XS/11 Pro | 5.8-inch | 375*812 | @3x | 1125*2436 | | 458 | XS Max/11 Pro Max | 6.5-inch | 414*896 | @3x | 1242*2688 | | 458 | XR/11 | 6.1-inch | 414*896 | @2x | 828*1792 | | 326 | | | | | | | | 12 mini | 5.4-inch | 375*812 | @3x | 1125*2436 | 1080*2340 | 476 | 12 | 6.1-inch | 390*844 | @3x | 1170*2532 | 1170*2532 | 460 | 12 Pro | 6.1-inch | 390*844 | @3x | 1170*2532 | 1170*2532 | 460 | 12 Pro Max | 6.7-inch | 428*926 | @3x | 1284*2778 | 1284*2778 | 458 |
逻辑分辨率和物理分辨率逻辑分辨率以point(pt)为单位,物理分辨率以pixel(px)为单位。 区分逻辑分别率和物理分辨率是因为在早期iPhone 3GS之前,iOS绘制图形以point为单位。在这个时期point和pixel严格对应在一起。在iPhone 3GS上: 1 pt = 1 px到了iPhone 4开始,苹果引入了Retina屏幕。在一定物理单位内可以显示2倍的像素。iPhone 4的屏幕物理尺寸还是3.5寸,分辨率为640 × 960,提升了4倍。也就是说,原先的1 point可以容纳4个pixel。 
到了iPhone 4,逻辑分辨率和物理分辨率的关系就成了: 1 pt = 2 px缩放因子(scale)因为逻辑分辨率和物理分辨率存在着一定的比例关系,这种比例的关系称为缩放因子。其对应关系为: 1 pt = scale * px在iPhone 3GS上,缩放因子为1(以“@1x”来表示)。在iPhone 4上,缩放因子为2(以“@2x”来表示)。
作者:暮成雪
链接:https://www.zhihu.com/question/40506180/answer/623203881
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
我们以mac的发展史来说明什么是物理分辨率,以及为什么需要衍生出逻辑分辨率。我们的主人公是乔帮主和比尔盖茨。此时乔帮主面前有一台mac,屏幕的分辨率是1280*720,这就是物理分辨率。乔帮主对比尔盖茨说,给我的mac开发一个word软件吧。盖茨说OK,于是写了一个软件,这个软件显示的时候长度是1280像素,宽度是720像素,正好能够盖满整个mac屏幕。乔帮主看了之后很满意。有一天,乔帮主看自己的mac屏幕觉得很粗糙,一点都不清晰锐利。于是聪明的乔帮主想到,同样是15寸的屏幕,我把像素点翻倍,不就可以更清晰了吗?于是他把mac的物理分辨率改成了2560*1440的分辨率,相当于每个像素点的尺寸减少了4倍,这下再也看不出颗粒感了,乔帮主很满意。但是,当乔帮主打开盖茨给他写的word的时候,傻眼了,原本全屏的word现在只占屏幕的四分之一,而且文字非常的小。乔帮主打电话给盖茨说,你的软件怎么出问题了?盖茨回答说,我开发的时候你的mac分辨率就是1280*720,你自己改了硬件尺寸怪我咯,我很忙没空给你改软件代码,你就凑合着用吧。乔帮主稍作思考,马上想出了一个非常聪明的主意!他在软件和硬件之间的系统层加了一层逻辑分辨率。虽然屏幕横向有2560个像素点,但是告诉软件我只有1280个像素点!当word的宽度要占1280个像素的时候,实际上已经占了2560个像素。于是我们的word又占满屏幕了!于是乔帮主把这个机智的想法命名为逻辑分辨率,不管我显示器的硬件有多少个像素点,我只会告诉软件我的逻辑分辨率,这样软件的代码就不用修改也能在不同的屏幕上显示效果一致。在多年后,imac的物理分辨率已经达到了5120 x 2880,但是告诉软件的时候还是说我的分辨率是1280*720,相当在盖茨看来的一个逻辑像素点,背后实际上已经有16个物理像素点为其工作了!
吧里老哥,我查了iphone7p的分辨率是1920*1080,为啥我的是1242*2208,想看一下你们的是否和我的一样

连接,https://tieba.baidu.com/p/6086348481
|