今天学习安卓的时候又遇到这个问题,第一次认真搜索了一下,看了很多博文说的不太全面或是没有讲到本质,我只是简单说一下对于电子屏幕来说ppi和dpi的区别。


一、PPI和DPI的概念 

先说普通用户接触较多的ppi,英文全称pixels per inch,又叫像素密度,意思是每英寸上的像素数。如图是我画的垃圾图,凑活看,一块1280*720分辨率的5英寸屏幕,意思是横向720个像素,纵向1280个像素,对角线长度5.0英寸,可以计算ppi = sqrt(1280^2+720^2)/5.0 = 293.72。理论上人眼所能分辨的ppi为300,300以上可称视网膜屏,也就是苹果所谓的Retina屏。

然后是开发中用到的dpi,英文全称dots per inch,又叫点密度。dpi是比ppi范围广的多的词,因为只有数码设备才有像素这个概念,其他的比如打印机就只能用dpi衡量。除了点和像素的区别,其他计算方式和ppi是一样一样的。


二、PPI和DPI的区别

理论上对于屏幕而言,点就是像素,像素就是点,ppi和dpi应该没有区别才对,但是对于图里的屏幕,已经计算过ppi=293,跑分软件却显示dpi=320。为什么dpi和ppi会不同?其实这是人为规定的结果。

在开发中使用的dot也就是dpi中的d,如果有一个640d*360d的东西,显示在上述1280*720的屏幕上,严格点对点显示,将正好占据1/4个屏幕,但是在640*360的屏幕上就是占满了整块屏幕。生活中的屏幕分辨率五花八门,点对点显示肯定是行不通的,所以需要按比例显示。先规定基准dpi为160(安卓早期谷歌规定的基准值),还是严格按照定义,1280*720的5寸屏幕ppi=dpi=293,假设有一条80d的线段,那么在这块屏幕上实际点数应该是293/160*80=146.5???出现了半个像素的情况!!!这让屏幕左右为男,显示也不对,不显示也不对。为了避免这种问题,谷歌又规定了几种标准dpi分别为240、320等等,和160dpi的比例分别为1.5、2,293与320最为相近(没有研究具体什么是最为相近),所以规定此屏幕dpi为320。这样只要确保开发中使用的大小即点数必须为偶数,这样再乘以比例就不会出现半个点的情况。


三、总结

总结一下,对于手机屏幕,点和像素是一个意思,理论上ppi和dpi应该是一个东西,但是由于ppi五花八门,在按比例放大的时候会出现半个像素的情况,所以人为规定了几个特殊的dpi取值,比如160、240、320等,完美解决了问题,同时导致手机屏幕的ppi和dpi不再相等。

简单易懂ppi和dpi的本质和由来相关推荐

  1. 一、css清除浮动方法学习笔记总结(超详细,简单易懂)

    ** css清除浮动方法学习笔记总结(超详细,简单易懂) ** 问题: 上图中,由于container(父级元素)未设置高度,其内部子元素设置了float浮动,导致与container同级(也就是co ...

  2. JavaScript面向对象--继承 (超简单易懂,小白专属)...

    JavaScript面向对象--继承 (超简单易懂,小白专属) 一.继承的概念 子类共享父类的数据和方法的行为,就叫继承. 二.E55如何实现继承?探索JavaScript继承的本质 2.1构造函数之 ...

  3. 1ppi等于多少dpi_Android开发之显示篇(弄懂ppi、dpi、pt、px、dp、dip、sp之间的关系只需这一篇)...

    概述 前段时间看了小米8的发布会,其中屏幕参数是如下介绍的: 小米8采用6.21英寸的三星AMOLED屏幕,分辨率为2248x1080,402 PPI ,纵横比是18.7:9,屏占比为86.68%,最 ...

  4. 分辨率PPI与DPI(转)

    分辨率PPI与DPI,关于这个问题,现在很多人容易混淆,现摘录几份资料,以后再整理吧. 图像分辨率所使用的单位是PPI(Pixel Per Inch),意思是:在图像中每英寸所表达的像素数目.从输出设 ...

  5. 【转】区块链是什么,如何简单易懂地介绍区块链?

    作者:知乎用户 链接:https://www.zhihu.com/question/37290469 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 友情提醒:比特币 ...

  6. Android开发之显示篇(弄懂ppi、dpi、pt、px、dp、dip、sp之间的关系看这一篇就够了)

    版权申明]非商业目的注明出处可自由转载 博文地址:https://blog.csdn.net/ShuSheng0007/article/details/85165773 出自:shusheng007 ...

  7. 弄懂ppi、dpi、pt、px、dp、dip、sp之间的关系

    基本概念: 屏幕的像素与图片的像素是一回事吗? 屏幕的分辨率和图片的分辨率是同一回事吗,分别代表什么,二者什么关系? PPI 和DPI 是一回事吗,什么关系? pt与px什么关系? Android中的 ...

  8. LeetCode—笔记—51、N皇后——递归回溯,个人思路,简单易懂

    LeetCode-笔记-51.N皇后--递归回溯,个人思路,简单易懂 51. N 皇后 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. 给你一个整数 ...

  9. 【转】JS回调函数--简单易懂有实例

    JS回调函数--简单易懂有实例 初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数. 我们先来看看回调的英文定义:A callback is a function that is ...

最新文章

  1. UniCode 下 CString 转 char* 的方法
  2. python可迭代对象 迭代器生成器_Python可迭代对象、迭代器和生成器
  3. 2020年CNCF和开源项目开发速度
  4. php打印出函数的内容吗,PHP打印函数集合详解以及PHP打印函数对比详解(精)
  5. Entity Framework 简介
  6. linux 怎么管理文件夹,Linux 是如何管理目录文件?
  7. python助教评分问题_【1414软工助教】单元测试 得分榜
  8. grid studio python_Grid studio表格应用程序:Python的集大成者
  9. 双非院校,0项目经验,三个月入职大厂NLP算法岗,月薪30k+
  10. Unit Testing with JUnit - Tutorial
  11. css一行内容过多显示省略号
  12. vb中查询mysql_vb数据库查询语句-vb中使用sql语句-vb读取sql语句的字段
  13. matlab gui图标,matlab GUI
  14. 另一个伊甸国际服节奏榜(以下全为个人观点,仅供参考
  15. MATLAB 显示和保存傅里叶变化频谱图
  16. c语言万年历怎么加节日,C语言万年历
  17. 运筹学系列(一)纳什均衡与最大最小博弈
  18. SCI影响因子与期刊检索网站整理
  19. 魔数湖南大学程序设计作业
  20. 【STM32笔记】低功耗模式配置及避坑汇总

热门文章

  1. STL学习_(一)STL简介-STL六大组件简介
  2. 1000瓶毒水的问题
  3. codeforces 348A Mafia
  4. 【LeetCode】括号(有效括号、括号生成、最长有效括号)
  5. 图片路径不存在,替换问题图片
  6. 【C++进阶】第二十篇——map和set(map和set的用法+multimap+multiset+map和set代码实现)
  7. ElasticSearch SocketTimeoutException解决
  8. 蓝桥杯训练(python)Day2
  9. python---字符串函数
  10. 计算机表格判断是否合格操作,关于一些刚开始接触计算机的基础知识(2)