一、基本概念
dip : Density independent pixels ,设备无关像素。
dp :就是dip
px :像素
dpi :dots per inch ,直接来说就是一英寸多少个像素点。常见取值 120,160,240。我一般称作像素密度,简称密度
density :直接翻译的话貌似叫密度。常见取值 1.5 , 1.0 。和标准dpi的比例(160px/inc)
分辨率 :横纵2个方向的像素点的数量,常见取值 480X800 ,320X480
屏幕尺寸:屏幕对角线的长度。电脑电视同理。
屏幕比例的问题。因为只确定了对角线长,2边长度还不一定。所以有了4:3、16:9这种,这样就可以算出屏幕边长了。
二、应用
在android里面,获取一个窗口的metrics,有这么几个值
metrics.density;
metrics.densityDpi;
densityDpi:就是我们常说的dpi。
density:是 DPI / (160像素/英寸)后得到的值。
DPI的单位是像素/英寸,density是没单位的,是一个比例值。
三、单位转换
1. 计算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
2. 计算dp与px
布局时要知道1个dp等于多少px
换算公式:dp = (DPI/(160像素/英寸));px = density px
假设dpi=240 像素/英寸, density=1.5
则dp=1.5px
转换计算用这个公式:PX = density * DP
即:像素值 = density * 设备无关像素值
四、计算范例:荣耀7
屏尺寸:5.2英寸
屏幕分辨率:1920*1080像素
宽高比:16:9(120)
像素密度:424PPI
1.用勾股定理算出两边长
(16x)2+(9x)2=(A)2 ,则:
(16x)2+(9x)2=(5.2)2
2.换算英寸为厘米:1英寸=2.54厘米
宽=2.54*2.54=6.45厘米
高=4.532*2.54=11.43厘米