
iPhone 6+除外,其他所有iPhone的DPI是一致的,都是326,用@2x的素材。
但是6+的实际DPI是401,理论上苹果应该用401/326 @2x=@246x的素材。但是这个奇葩的比例对开发者而言很难切图。所以苹果为方便开发者用的是@3x的素材,然后再缩放到@246x上,实际上是缩放到246/3=83%。实际上苹果选取了一个接近比例的87%。
这样算下来,物理分辨率和虚拟分比率的比例是87%,也就是1920/087=2208,1080/087=1242
好处就是开发者更方便,比如准备素材时,字号可以直接调成3x的。
除iPhone 6 Plus外的iPhone逻辑分辨率与相应的屏幕尺寸计算出来的PPI均为163,并且与物理分辨率成整数倍关系,但是iPhone 6 Plus的逻辑分辨率PPI却是153,并且物理分辨率约为逻辑分辨率的26倍。
综上所述,我有2点疑问:
1、为何iPhone 6 Plus的逻辑分辨率不是与55英寸搭配成163 PPI的440x782?
2、为何iPhone 6 Plus的逻辑分辨率不是其物理分辨率的1/3即360x640?这样不就可以实现开发者追求的 pixel perfect了么,直接@3x到1080x1920应该要比现在@3x到1242 x 2208再缩放到1080x1920更完美一些吧。
PS:
综合以上2点疑问,个人认为最适合iPhone 6 Plus的物理分辨率是1320x2346,PPI为489,逻辑分辨率为440x782,PPI为163。目前1080x1920的物理分辨率与414x736的逻辑分辨率组合让我十分不解。
链接:>
物理像素[设备像素] & 逻辑像素[CSS 像素]
拿2倍屏来说,设备的物理像素要实现1像素,而DPR=2,所以css 像素只能是 05。一般设计稿是按照750来设计的,它上面的1px是以750来参照的,而我们写css样式是以设备375为参照的,所以我们应该写的05px就好了啊! 试过了就知道,iOS 8+系统支持,安卓系统不支持。
在浏览器中无法设置小于 1px 的边框 设置了也不会生效
设计师要求的 1px 是指设备的物理像素 1px,而 CSS 里记录的像素是逻辑像素,它们之间存在一个比例关系,可以用 javascript 中的 windowdevicePixelRatio 来获取。当然,比例多少与设备相关。
移动端开发常需要在 html 的 header 里添加如下一句:
设备像素比 = 物理像素 / css 像素
核心思想就是设置 1px 大小 然后将 1px 缩小为 05px 来展示
IOS8 下已经支持带小数的 px 值, media query 对应 devicePixelRatio 有个查询值-webkit-min-device-pixel-ratio, css 可以写成这样
缺点对设备有要求,小数像素目前兼容性较差。
pixel-bordercss 这个工具库就是用来解决移动端 1px 边框的问题,用到的思想和我下面写的一致
pixel-bordercss
该方案是对上述方案的优化,整体思路就是利用 viewport + rem + js 动态的修改页面的缩放比例,实现小于 1 像素的显示。在页面初始化时,在头部引入原始默认状态如下:
接下来的任务就是 js 的动态修改缩放比 以及 实现 rem 根元素字体大小的设置。
缺点以为缩放涉及全局的 rem 单位,比较适合新项目,对于老项目可能要涉及到比较多的改动。
可能你会问为什么在3倍屏下,不是03333px 这样的?经过我测试,在Chrome上模拟iPhone 8Plus,发现小于046px的时候是显示不出来。
这个哪要换算啊,在PS里CTRL+N,新建一个,d出窗口宽度和高度后面有一个可以更换单位的,你直接换成厘米,一个做成235厘米,一个做成115厘米颜色模式选CMYK,因为你是做喷绘,分辨率72就够了。
哪有那么复杂还要换算?那请问人家软件后面设那么多单位做什么呢。
GetPixel函数可以得到指定坐标点的像素值。
函数功能:该函数检索指定坐标点的像素的RGB颜色值。
函数原型:COLORREF GetPixel(HDC hdc, int nXPos, int nYPos)
参数
hdc:设备环境句柄。
nXPos:指定要检查的像素点的逻辑X轴坐标。
nYPos:指定要检查的像素点的逻辑Y轴坐标。
返回值:返回值是该象像点的RGB值。如果指定的像素点在当前剪辑区之外;那么返回值是CLR_INVALID。
GetCursorPos函数可以得到当前鼠标的坐标点。
函数功能:该函数检取光标的位置,以屏幕坐标表示。
函数原型:BOOL GetCursorPos(LPPOINT lpPoint)。
参数
IpPoint:POINT结构指针,该结构接收光标的屏幕坐标。
以上就是关于为什么iPhone6plus的逻辑分辨率是1242 x 2208全部的内容,包括:为什么iPhone6plus的逻辑分辨率是1242 x 2208、iPhone 6 Plus 的逻辑分辨率为什么是 414x736 、移动端 1px 边框的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)