Android开发中dp、dpi、px

一、基本概念

   - dp:安卓中的相对大小
   - dpi:(dot per inch)每英寸像素多少
   - px:像素点

二、详细说明

1、px、dpi、density 
   - px:平常所说的1920×1080只是像素数量,也就是1920px×1080px,代表手机高度上有1920个像素点,宽度上有1080个像点。(一个像素没有固定大小)
   - dpi:(dot per inch)每英寸像素多少
   屏幕像素密度 一般计算公式为,由屏幕长宽的分辨率,根据勾股定律求出对角线的像素数,再除以屏幕的尺寸,即可得densitydpi.
   - density:密度  ,density 的意思就是 1 dp 占当前设备多少像素   dp = px / density ; DPI / 160 = density
2、dp  
    (1)、怎样理解dp才好呢?
    其实dp就是为了使得开发者设置的长度能够根据不同屏幕(分辨率/尺寸也就是dpi)获得不同的像素(px)数量。比如:我将一个控件设置长度为1dp,那么在160dpi上该控件长度为1px,在240dpi的屏幕上该控件的长度为1*240/160=1.5个像素点。也就是dp会随着不同屏幕而改变控件长度的像素数量。关于dp的官方叙述为当屏幕每英寸有160个像素时(也就是160dpi),dp与px等价的。那如果每英寸240个像素呢?1dp—>1*240/160=1.5px,即1dp与1.5px等价了。其实记住一点,dp最终都要化为像素数量来衡量大小的,因为只有像素数量最直观。
    (2)、计算dp的方法
通常来说,我们写程序时几乎没用到计算dp,就是直接凭着自己的感觉写的。此处计算dp只是为了大家更好理解dp,如果有的人想精确设置控件大小,也可以这样计算的。
我直接画张图吧: 

计算dp往往是由程序员完成的,是创造的过程,顺叙的过程。但是写程序总会有两个历程的,一个是进行写,一个是返回读,这个读的话就用到了将dp转换了。

https://www.cnblogs.com/JLZT1223/p/6784449.html

https://blog.csdn.net/lantiankongmo/article/details/50549128

猜你喜欢

转载自blog.csdn.net/songzi1228/article/details/81259196