美文网首页
android dp 我的理解

android dp 我的理解

作者: 碎念枫子 | 来源:发表于2020-06-12 18:28 被阅读0次

首先把两个东西说清楚,防止大家眼花导致理解错误

dp 也就是dipdevice independent pixel 设备独立像素
dpi: dots per inch 即像素密度,每英寸屏幕的像素点

px:这个很基础,就是像素,一个点就是一个像素。
dp:这个单位是为了保证在同样的显示器上物理长度一致。
一般来说,屏幕的尺寸我们会说多少寸17寸 ,5.3寸,这多少寸指的是屏幕对角线长度,根据勾股定理,算得的对角线长度大多不是整数,所以我们19寸通常给的都是一个近视值。

例如我的一个19英寸 1440*900的屏幕
他的dpi计算方式如下:

math.sqrt(1440*1440-900*900)/19 ==59.2 //约等于60
1440/60=24 //屏幕宽为24英寸
900/60=15 //屏幕高为15英寸

说明这个屏幕长度为24寸,宽为15
这块屏幕的dpi60
在安卓里面,对dpi的划分
ldpi:000~120dpi
mdpi:120~160dpi
hdpi :160~240dpi
xhdpi:240~320dpi
xxhdpi:320~480dpi
xxxhdpi:480~640dpi
在默认情况
LDPI dpi120,density0.75,
MDPI dpi160,density1.0
HDPI dpi240,density1.5
XHDPI dpi320,density2.0
...
density就是DPI/160 是该屏幕的dpi160标准屏幕dpi的比例
dp =density * px;
所以19寸1440*900这款屏幕的dpi60 密度是0.375
屏幕宽度1440*0.375=540540dp
屏幕高度900*0.375=337.5337.5dpi

就是这个density让同样的dp单位在不同物理尺寸的手机上保持一致,density是个比例,其实dp也是一个比例,这样就很好理解了。

抱着疑问,我对我的安卓板测试了一下

结果很神奇,我的安卓版vga外接显示器的结果density=1 dpi=160,仔细想想,
安卓外接显示器,其实它不知道显示器的大小,仅能选取分辨率,所以这样做dp失去了它的意义,但是也很合理

相关文章

网友评论

      本文标题:android dp 我的理解

      本文链接:https://www.haomeiwen.com/subject/ksentktx.html