dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算(终结版)

原创 2012年09月18日 17:42:18

首先,说下概念(网上很多帖子几个地方都搞混了,理一下):


dip : device independent pixels ,设备无关像素。 我看很多帖子写的五花八门的,关于d的,什么display啊各种都有,既然是设备无关,我还是觉得device靠谱。

   dp就是dip

px : 像素不多说


dpi :dots per inch , 直接来说就是一英寸多少个点。常见取值 120,160,240。我一般称作像素密度,简称密度

density : 直接翻译的话貌似叫 密度。常见取值 1.5 , 1.0 。


分辨率: 横纵2个方向的像素点的数量,常见取值 480X800 ,320X480

屏幕尺寸: 屏幕对角线的长度。电脑电视同理。

     这里还涉及另外一个问题,就是屏幕比例的问题。因为只确定了对角线长,2边长度还不一定。所以有了4:3、16:9这种,这样就可以算出屏幕边长了。


重点来了,网上很多帖子直接把 density 叫做“密度”,然后就说他是像素密度,然后就说他是dpi。

在android里面,获取一个窗口的metrics,里面有这么几个值

metrics.density;
metrics.densityDpi;


densityDpi就是我们常说的dpi。density其实是  DPI / (160像素/英寸)  后得到的值。是不是有点奇怪,因为我带了单位。。。这个涉及到后面一个比较重要的东西,后面再说。

从上面就看得出了,DPI本身的单位也是 像素/英寸,所以density其实是没单位的,他就是一个比例值。

而dpi的单位是 像素/英寸,比较符合物理上面的密度定义,密度不都是单位度量的值么,所以我更喜欢把dpi叫像素密度,简称密度,density还是就叫density。



然后,来算算dpi。

比如一个机器,屏幕4存,分辨率480X800,他的dpi能算么。

因为不知道边长,肯定不能分开算,4是对角线长度,那直接用勾股定理算对角线像素,除以4,算出来大概是 dpi = 233 像素/英寸。

那么density就是  (233 px/inch)/(160 px/inch)=1.46 左右


顺带说下,android默认的只有3个dpi,low、medium和high,对应 120、160、240,如果没有特别设置,所有的dpi都会被算成这3个,具体可以参考下这个帖子

http://android.tgbus.com/Android/tutorial/201103/347176.shtml

其中的default就是160。



然后就该算了,我们写布局的时候,肯定还是要知道1个dp到底有多少px的。

换算公式如下:    dp = (DPI/(160像素/英寸))px  =  density px

        注意,这里都是带单位的。px是单位,dp是单位,density没单位。


为了方便,假设dpi是240 像素/英寸 , 那么density就是1.5

那么就是   dp=1.5px ,注意这是带了单位的,也就是 设备无关像素 = density 像素


那么转换数值计算的话,应该是下面这个式子

PX = density * DP

也就是 

像素 = density * 设备无关像素值  ,请注意这里有个字。

 


所以,90px 就应该是 60 dp 。不要问我为什么和公式不符了,全是单位的问题,物理老师死得早啊 

javascript获得屏幕的DPI

function js_getDPI() {    var arrDPI = new Array();    if (window.screen.deviceXDPI != undefined) { ...
  • xqdak
  • xqdak
  • 2010年04月06日 09:40
  • 9580

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算(终结版)

首先,说下概念(网上很多帖子几个地方都搞混了,理一下): dip : device independent pixels ,设备无关像素。 我看很多帖子写的五花八门的,关于d的,什么...
  • dzhj11
  • dzhj11
  • 2013年05月30日 10:24
  • 486

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算(终结版)

首先,说下概念(网上很多帖子几个地方都搞混了,理一下): dip : device independent pixels ,设备无关像素。 我看很多帖子写的五花八门的,关于d的,什么displ...
  • liguoqing19861028
  • liguoqing19861028
  • 2014年12月25日 13:20
  • 443

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

一、基本概念 dip        : Density independent pixels ,设备无关像素。 dp        :就是dippx        : 像素dpi       ...
  • JianFeng_Z
  • JianFeng_Z
  • 2017年03月30日 15:21
  • 420

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

一、基本概念 dip : Density independent pixels ,设备无关像素 dp :就是dip px : 像素 dpi :do...
  • u011033906
  • u011033906
  • 2017年02月09日 15:20
  • 356

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算
  • shinesun001
  • shinesun001
  • 2016年11月14日 22:42
  • 206

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算 一、基本概念 dip        : Density independent pixels ,设备无关像素。 ...
  • fyfcauc
  • fyfcauc
  • 2015年03月09日 22:10
  • 398

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算 一、基本概念 dip        : Density independent pixels ,设备无关像素...
  • happyrabbit456
  • happyrabbit456
  • 2017年01月12日 09:34
  • 144

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

一、基本概念 dip        : Density independent pixels ,设备无关像素。 dp        :就是dippx        : 像素dpi       :do...
  • u014250518
  • u014250518
  • 2015年12月01日 09:56
  • 3273

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

从网上找到的一篇讲解dip和px还不错的文章,收藏过来。 文章来源 一、基本概念 dip        : Density independent pixels ,设备无关像素。 ...
  • dongzhouT
  • dongzhouT
  • 2016年04月11日 11:14
  • 1051
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算(终结版)
举报原因:
原因补充:

(最多只允许输入30个字)