1

明确几个概念:

物理像素:屏幕物理像素

屏幕像素密度ppi:pixels per inch,屏幕上每英寸可以显示的像素点的数量,即屏幕像素密度。顺便一提,ppi就是dpi,只不过有文章里说苹果喜欢用ppi,dpi安卓喜欢用,emmmm,所以还是用ppi吧。

ppi的计算:屏幕对角线的屏幕物理像素密度除以屏幕尺寸。

以 iphone6 为例子,屏幕是 1334*750,326ppi,屏幕4.7英寸

Math.sqrt(Math.pow(1334,2)+Math.pow(750,2)) / 4.7 ≈ 325

在移动设备开发里面,屏幕适配也是需要考虑的一个问题,为了在不同屏幕中统一设置的单位能够自适应,IOS开发推出了PT,Android中叫做DP/DiP(Device independent Pixel,设备无关像素),字体会用sp。这些单位都是相对单位,开发的时候数值是固定的,单位会自动随屏幕的ppi改变px的倍数,标准是以160ppi的屏幕下1dp=1px,其他按比例计算。比起前端开发真是方便太多了。

除了这些,还有:pc、sp、dpi、ldpi、mdpi、hdpi、xhdpi、xxhdpi...这些没什么特别需要记住的,需要的百度就查一下就行了,dpi前加其他的其实都是dpi,只不过是不同屏幕分辨率下的不同表示。

2

为什么有个逻辑分辨率和物理分辨率之分呢,主要是软件开发的限制,ios 开发以 pt 为单位,1pt 在 iphone 4 上是等于 2px,iphone 6p 上是 3px。所以如果设置了逻辑分辨率,开发就很方便,只需要写一个单位值就能适配各种尺寸的屏幕。

关于设备像素比,用 iPhone 做例子:

上表清晰展示了历代 iphone 的逻辑分辨率和物理分辨率关系。有个特殊的地方是 iphone 6p 的设备像素比,不是整数 3,即物理像素分辨率是 1080x1920 而不是 1242x2208,虽然获取时 window.devicePixelRatio 依然是拿到 3 的,不过是近似等于 3,关于原因可以看下面链接的回答。

本文来源:JuFoFu

本文地址:http://www.cnblogs.com/JuFoFu/p/7719823.html

水平有限,错误欢迎指正,转载请注明出处。

参考链接:

深入了解viewport和px

http://tgideas.qq.com/webplat/info/news_version3/804/7104/7106/m5723/201509/376281.shtml

iPhone 6 Plus 的逻辑分辨率为什么是 414x736 ?

https://www.zhihu.com/question/25361043

逻辑分辨率和物理分辨率到底是什么呀?

https://www.zhihu.com/question/40506180?sort=created

最新文章

  1. 像编程一样写文章—Markdown
  2. Java总结(一):封装——Encapsulation
  3. ADO.NET笔记——使用Connection连接数据库,使用Command对象的ExecuteReader()方法创建DataReader对象返回多行数据
  4. FS,FT,DFS,DTFT,DFT,FFT的联系和区别
  5. vector 的resize与reserve
  6. YII Query Builder
  7. JSP EL表达式 获得 request的GET/POST方法
  8. [python] 小游戏 - play_plane
  9. vue+vux页面滚动定位(支持上下滑动)
  10. IOS应用内购(一)内购的种类
  11. 洛谷【P2458】[SDOI2006]保安站岗 题解 树上DP
  12. Servlet的多线程和线程安全
  13. BeautifulSoup 模块详解
  14. 学习笔记43—Linux基础集
  15. python 多进程练习 调用 os.system命令
  16. LightOJ 1118 - Incredible Molecules (两圆面积交)
  17. ArcGIS进行自定义投影转换(重投影)
  18. MBProgressHUD 的类扩展方法用法
  19. bin/hdfs dfs命令
  20. Ubuntu安装ss

热门文章

  1. Bit与Byte的区别
  2. chrome flash插件改为自动运行
  3. 【非原创】tomcat 安装时出现 Failed to install Tomcat7 service
  4. 开源api文档
  5. 从今天开始学Python
  6. 设置EntityFramework中decimal类型数据精度问题(EF默认将只会保留到2为精度)
  7. 湘潭邀请赛 2018 I Longest Increasing Subsequence
  8. html li css选中状态切换
  9. 手动编写一个简单的loadrunner脚本
  10. PriorityQueue详解(一)