您的位置:首页 > 其它

带你走进分辨率/像素的世界

2016-05-05 10:56 337 查看
基本概念

dip(dp): Density independent pixels ,设备无关像素。

px: 像素

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

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

分辨率   : 横纵2个方向的像素点的数量(譬如:480X800。就是指屏幕上有多少个点)

屏幕尺寸: 屏幕对角线的长度。电脑电视同理。大小单位都是英寸。

其中:dpi和density是一样的,他们之间只是存在比例的问题。

入正题吧!

首先大家都知道,点组成了线,线连成了线,线组成了面。那么无可厚非点当然就是像素了。

这边我详细跟大家讲一下各个单位之间的换算。如果大家都能看懂,想必,对像素这些的基本概念也就一目了然了。

1.计算像素的密度(一英寸多少像素点级dpi)

  比如一个手机,屏幕4寸,分辨率480X800,它的dpi能算么?

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

  那么density就是 (233 px/inch)/(160 px/inch)=1.46 左右(在这里就可以清楚的看到了dpi和desity之间就是个   比例的问题,这边您可以不用刻意去理解它)

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

2. 计算 dp(设备无关像素)与 px  (看懂之后您就明白,为什么开发安卓建议有dip这个单位了)

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

        在安卓开发当中我们通过了此行代码获取了该手机的分辨率密度:

                float density = getResources().getDisplayMetrics().density

            px= density * dip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: